非静态方法可以调用静态方法,静态方法不可以调用非静态方法! 原因如下: 静态方法是属于类的,即静态方法是随着类的加载而加载的,在加载类时,程序就会为静态方法分配内存。 非静态方法是属于对象的,对象是在类加载之后创建的。 也就是说静态方法先于对象存在,当你创建一个对象时,程序为其分配内存,一般是通过this指针来指向该对象。静态方法不依赖于对象的调用,它是通过‘类名.静态方法名’这样的方式来
4年前 添加回复 0
[最新 God_Like 的回答] 首先非常感谢老师的回复一、您给的示例代码里面 类没有定义 test() 这个方法 所以实例化会运行错误echo (new Demo)->test(); // "Error" 二、我一直在用的是php7.2的版本练习东西您给的代码中我把(new Demo)->test() 修改成(new Demo)->test2()运行两个输出结果都是peter是不是证明类的【普通方法】 既可以调用【类的静态属性】又可以调用类的【静态方法】
时间:5年前
phpcn_u11440
非静态方法也可以访问静态属性
6年前 添加回复 4