Php 将::(范围解析运算符)与对象一起使用以访问类变量有什么意义吗?

Php 将::(范围解析运算符)与对象一起使用以访问类变量有什么意义吗?,php,class,Php,Class,尽管允许使用语法:-$object::$variable访问类变量,但它是否具有任何意义,即在访问类变量时,我们可以使用该类的类名或对象来访问类变量,不是吗?您的意思是 <?php class A { public static $b = 'Hello World!'; } echo A::$b; $obj = new A(); echo $obj::$b; 警告:我不建议使用实例变量访问静态类成员 这仅适用于PHP>=5.3.0 PHP此运算符用于访问静态变量。这意味着变量

尽管允许使用语法:-$object::$variable访问类变量,但它是否具有任何意义,即在访问类变量时,我们可以使用该类的类名或对象来访问类变量,不是吗?

您的意思是

<?php

class A {
    public static $b = 'Hello World!';
}

echo A::$b;
$obj = new A();
echo $obj::$b;
警告:我不建议使用实例变量访问静态类成员

这仅适用于PHP>=5.3.0


PHP此运算符用于访问静态变量。这意味着变量链接到类,而不是该类的实例。i、 e.在所有实例上共享

这里有一个例子向您展示我的意思:

class MyClass
{
    public static $myStaticVar;
    public $myObjectVar;
}

$instance1 = new MyClass();
$instance2 = new MyClass();

// normal vars are linked to an instance of a class
$instance1->myObjectVar = 'value1';
$instance2->myObjectVar = 'value2';

// statics are shared between all instances of the same class
$instance1::$myStaticVar = 'value3';

echo $instance2::$myStaticVar; // results in 'value3'!

仅供参考,此运算符称为T_PAAMAYIM_NEKUDOTAYIM as,而不是作用域解析运算符,因为它与PHP中的作用域关系不大。@NDM,thanx forsharing@War10ckPHP.ooh中不存在静态类,显然,它毕竟被称为范围解析运算符:Thanx代表您的响应。Bubba否决了所有其他答案,使其排名靠前,我检查了他的个人资料以确认这一点。@NDM感谢您通知我。你已经报告他了吗?我在他的个人资料中看不到他的反对票,你能给我一个链接吗?这个问题的-2代表你和我的两张反对票。。。我刚才也投了他的反对票,不认为打旗子会有帮助…@NDM请回复你的反对票“复仇”没有帮助。标记确实有帮助,所以主持人团队非常友好。这是一个回答我问题的实用方法。