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;