A. Thinkphp為什麼獲取不到類裡面的屬性值
不行,「非靜態」的「常量」數據成員,在類中是有存儲空間的,並且不允許在定義時初始化,這與普通的(非常量非靜態)數據成員一樣。 與普通數據成員不同的是,「非靜態常量」數據成員只有初始化操作(在構造函數的初始化列表中進行),而沒有「寫
B. php 中如何得到一個對象的類型
得到一個對象的類型,使用gettype()函數:
<?php
echogettype(1);//輸出integer
echogettype(array());//輸出array
得到一個對象是哪個類的實例,使用get_class()函數:
<?php
$o=newstdClass();
echoget_class();//輸出stdClass
得到一個類或對象的方法和屬性,要使用反射:
<?php
classMyClass{
public$var;
publicfunctionfoo(){}
}
$ref=newReflectionClass('MyClass');
$ref->getProperties();//會返回一組對象,用法參考PHP手冊
$ref->getMethods();//會返回一組對象,用法參考PHP手冊
$obj=newMyClass();
$ref=newReflectionObject($obj);
$ref->getProperties();
$ref->getMethods();
C. PHP怎麼獲取很多Class文件裡面所有Class的方法
實例化這個class,然後就可以調用class裡面的所有方法了。
實例化的方法:
首先在需要調用的php文件裡面用include引入這個class文件。
include'你的class文件';
然後進行實例化,比如class名為test。
$m=newtest();
實例化後可以調用class裡面的任何方法,例如有個方法名為。
$m->();
這樣就成功的完成了。
D. PHP中如何定義類及其成員屬性與操作
實測
php中,在類里邊可以定義屬性
class
a
{
public
$name;
public
$type;
}
在類中不能定義屬性,但是可以定義變數,並將其賦給他所在類的屬性
class
a
{
public
$name;
function
b(){
$othername
=
1;
$this->name
=
$othername;
}
}
$a
=
new
a();
$a->b();
echo
$a->name;
最後,祝新年快樂
E. php 怎麼獲取當前函數名稱
php提供的一些系統常量可以完成這些
php獲取當前方法名(函數名) __FUNCTION__
php獲取當前類名 __CLASS__ 或者 get_class($this);
php獲取本類所有的方法名 get_class_methods($this);實例如下
class Test{
function kkk(){
return get_class_methods(Test);
}
function meme(){
}
function myfunction(){
}
}
$y=new Test();
print_r($y->kkk());
返回結果如下
Array ( [0] => kkk [1] => meme [2] => myfunction )
php獲取類中所有的成員屬性,返回一個數組 get_class_vars(class name); 實例如下
class Test{
public $tt="dddd";
public $aa="aaaaaaaa";
function kkk(){
return get_class_vars(Test);
}
}
$y=new Test();
print_r($y->kkk());
返回結果如下
Array ( [tt] => dddd [aa] => aaaaaaaa )
F. 在php中如何設置類的屬性,如何調用類的方法
PHP訪問類的屬性、方法使用箭頭語法(->)。這里我給你一個例子供你參考:
<?php
classMyClass{//定義MyClass類
public$name;//定義了一個公有屬性
protected$_age;//定義了一個保護屬性
private$_email;//定義了一個私有屬性
publicfunctionmy_method(){//定義my_method方法
}
protectedfunction_my_method2(){//定義_my_method2方法
}
}
$obj=newMyClass;//實例化
$obj->name='noname';//設置name屬性
$obj->_age=12;//這是錯誤的,不能設置保護屬性
$obj->address='KingStreet.'//設置一個未聲明的屬性是允許的,效果和公有屬性類似,但未賦值前不能使用。
$obj->my_method()//調用公有方法
$obj->_my_method2();//這是錯誤的,不能調用保護方法
你需要理解繼承、公有、保護和私有的概念。
繼承:子類繼承父類的公有、保護屬性和方法。
公有:類的實例可以訪問的屬性和方法。
保護:只能在類的內部及其子類內部訪問的屬性和方法。
私有:只能在類的內部訪問的屬性和方法。
這是個很基礎的問題,建議你多看書。
G. PHP中一個子類繼承父類後,如何獲取父類中的該private聲明的屬性呢
私有屬性 誰都不可見 不能直接用 在子類中不可用
所謂的繼承使子類擁有父類所有的屬性和方法其實可以這樣理解,子類對象確實擁有父類對象中所有的屬性和方法,但是父類對象中的私有屬性和方法,子類是無法訪問到的,只是擁有,但不能使用。
public class A {
private int a;
public int getA(){
return a;
}
public void setA(int a){
this.a=a;
}
}
public class B extends A{
private int b;
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
public class C extends B {
private int c;
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
}
那麼當C c1=new C()時。c1可以使用setA()getA()訪問控制從A類中繼承來的私有屬性a;