在面向对象编程中属性可以调用方法么?
静态方法与非静态方法的区别是什么?
方法可以调用方法么?
静态方法与非静态方法的区别是什么?
方法可以调用方法么?
2016-03-18
class Test{ public $a = 'c'; public static function b(){ echo 'staticFunctionB'; } public function c(){ self::b(); } } $instance = new Test(); $attr1 = $instance->a; $instance->$attr1(); // 在此使用 $instance->($instance->a)(); 会报错
上面为一个例子:类中包含一个 $a 值为 'c',实例化后将其值赋值给一个变量,然后用变量调用类方法,在类中进行函数间调用。
在面向对象编程中属性可以调用方法么?
按照你说的,强行用一个属性调用了,应该没什么意义。你可以自己更全面试试。
静态方法与非静态方法的区别是什么?
静态可以直接使用类名调用,比如可以处理一些固定不变的数据或一些固定不变的操作,注意不要在静态方法里掺入任何变量,否则会报错,因为静态不需要声明就可以使用类名调用,而你将一些必须实例的变量传进去当然会报错。
方法可以调用方法么?
上述例子就是方法调用方法,方法 c 调用静态方法 b。
一个自学者的粗浅见解,希望可以帮助到你,如果有什么不对的请告知我,我愿意去更深入的学习,谢谢。
举报