模版网站,项目建设网站,二手书网站策划书,wordpress调用2个表在 PHP 中#xff0c;类名加双冒号#xff08;::#xff09; 是一种用于访问类的静态成员和常量的语法。它也可以用来调用类的静态方法和访问 PHP 的类相关关键词#xff08;如 parent、self 和 static#xff09;。以下是详细的解释和用法。 1. 用途概述
:: 被称为作用域…在 PHP 中类名加双冒号:: 是一种用于访问类的静态成员和常量的语法。它也可以用来调用类的静态方法和访问 PHP 的类相关关键词如 parent、self 和 static。以下是详细的解释和用法。 1. 用途概述
:: 被称为作用域解析操作符Scope Resolution Operator主要有以下作用
1.1 访问静态属性
可以通过类名访问静态变量而不需要实例化类。
class MyClass {public static $staticVar Hello, World!;
}// 访问静态属性
echo MyClass::$staticVar; // 输出: Hello, World!1.2 调用静态方法
静态方法属于类本身而不是类的实例。通过 类名::方法名 调用。
class MyClass {public static function staticMethod() {return This is a static method.;}
}// 调用静态方法
echo MyClass::staticMethod(); // 输出: This is a static method.1.3 访问类常量
类常量通过 const 定义不能改变值可以用 :: 访问。
class MyClass {const CONSTANT_VALUE 42;
}// 访问常量
echo MyClass::CONSTANT_VALUE; // 输出: 421.4 特殊关键词的使用
self::
self:: 用于访问当前类的静态属性、方法或常量而不考虑继承关系。
class ParentClass {const CONSTANT Parent Constant;public static function showConstant() {return self::CONSTANT; // 访问当前类的常量}
}class ChildClass extends ParentClass {const CONSTANT Child Constant;
}echo ChildClass::showConstant(); // 输出: Parent Constant解释即使 ChildClass 继承了 ParentClassself:: 始终指向定义 showConstant() 的类即 ParentClass。 parent::
parent:: 用于调用父类的方法或访问父类的属性。
class ParentClass {public static function parentMethod() {return This is a parent method.;}
}class ChildClass extends ParentClass {public static function childMethod() {return parent::parentMethod(); // 调用父类的方法}
}echo ChildClass::childMethod(); // 输出: This is a parent method.static::
static:: 是 PHP 的后期绑定机制用于访问当前调用类而不是定义类的静态成员。
class ParentClass {public static function who() {return ParentClass;}public static function test() {return static::who(); // 后期绑定}
}class ChildClass extends ParentClass {public static function who() {return ChildClass;}
}echo ParentClass::test(); // 输出: ParentClass
echo ChildClass::test(); // 输出: ChildClass解释static:: 根据实际调用的类来决定绑定的目标而不是方法定义的类。 1.5 使用类名访问匿名类
匿名类的名字可以通过 类名::class 获取。
$classInstance new class {public static function sayHello() {return Hello from anonymous class!;}
};echo get_class($classInstance); // 输出: 类名如 classanonymous2. 小结
静态成员访问类名::属性名 或 类名::方法名。访问常量类名::常量名。特殊关键词 self::指向当前类。parent::指向父类。static::后期绑定用于动态调用。 获取类名类名::class。
:: 操作符主要用于访问类的静态上下文。如果需要访问对象的非静态成员则需要使用 对象操作符 -。