在PHP中,你可以通过类的实例来访问非静态方法,也可以通过类名直接访问静态方法。这里是如何分别做到这两点的示例:
访问非静态方法(通过实例)
非静态方法通常与类的特定实例关联,需要先创建类的实例,然后通过这个实例来调用方法。
class MyClass {
public function myInstanceMethod() {
echo "This is an instance method.";
}
}
// 创建类的实例
$myObject = new MyClass();
// 通过实例访问非静态方法
$myObject->myInstanceMethod(); // 输出: This is an instance method.
访问静态方法(通过类名)
静态方法属于类本身,而不是类的任何特定实例,因此可以直接通过类名来调用,无需创建类的实例。
class MyClass {
public static function myStaticMethod() {
echo "This is a static method.";
}
}
// 直接通过类名访问静态方法
MyClass::myStaticMethod(); // 输出: This is a static method.
需要注意的是,静态方法内部不能直接访问非静态属性或非静态方法,除非通过实例化对象来访问。非静态方法内则可以访问静态属性和调用静态方法。