为了账号安全,请及时绑定邮箱和手机立即绑定

在面向对象编程中属性可以调用方法么?

静态方法与非静态方法的区别是什么?

方法可以调用方法么?

正在回答

2 回答

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。


一个自学者的粗浅见解,希望可以帮助到你,如果有什么不对的请告知我,我愿意去更深入的学习,谢谢。

2 回复 有任何疑惑可以回复我~
#1

我叫孟小跳灬 提问者

非常感谢!
2016-03-20 回复 有任何疑惑可以回复我~

回答的很好,对我们初学者帮助很大

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在面向对象编程中属性可以调用方法么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信