【发布时间】:2018-05-21 13:20:16
【问题描述】:
如 PHP 手册所述
从 PHP 7.0.0 开始,静态调用非静态方法已经 通常已弃用(即使从兼容的上下文中调用)。
检查此声明-
我在一个类之外调用一个非静态方法然后它产生错误
class A{
public function foo(){
echo "testing<br/>";
}
}
A::foo();
不推荐使用:非静态方法 A::foo() 不应被静态调用
但是当我在类中调用非静态方法时,它不会生成Deprecated error
class A{
public function foo(){
echo "testing<br/>";
}
public function Display(){
A::foo(); //calling a Non-static method inside statically
self::foo(); //calling a Non-static method inside statically
}
}
$obj=new A();
$obj->Display();
是否仅在从类外部静态调用时才被弃用?
【问题讨论】:
-
从静态方法尝试。
-
在类内你可以使用类名的所有数据或方法不需要定义静态数据或方法但是在类外你不能使用类名的数据和方法如果它没有用静态关键字定义,可以通过类对象访问
标签: php