PHP手册说静态属性不能通过一个类已实例化的对象来访问(但静态方法可以),

我写的这段代码不就是已实例化的对象来访问静态属性并且获得了正确的结果,请问PHP手册上的那句话(见下图)到底是什么意思?是我理解有错,还是手册表达的意思和我理解的不一样?

第1个回答  2016-06-12

我想手册上说的是用这种方式来访问:

print $foo->$my_static

 他这里说的静态方法访问是指::

翻译有歧义的时候你可以看看英文版。

追问

那用::方式来访问不还是通过类实例化的对象来访问吗?

追答

php 5.3.0已经支持对象的实例通过::来调用静态方法
英文版说了:
Static properties cannot be accessed through the object using the arrow operator ->.

追问

php 5.3.0已经支持对象的实例通过::来调用静态方法这句话在哪看的啊?还有我找的英文版PHP手册的这句话和你写的不一样啊?您的英文手册怎么下载啊,谢谢

追答

我就是访问官网的php手册:

在这个段落:

#language.oop5.static.properties

5.3支持是在案例里有说明,仅仅通过一个注释:

print $classname::$my_static . "\n"; // As of PHP 5.3.0

本回答被提问者采纳

PHP手册上有这么一句话:静态属性不能通过一个类已实例化的对象来访问...
我没看过这句话,但我记得是,静态属性只能通过实例化的对象访问,而静态方法无需实例化(就是随时随地)便可访问。

为什么静态方法不可以直接new 一个 非静态内部类 的 对象,还得加上外部...
静态内部类:是可以被独立实例化的,而不依赖外部类实例化,且内部类中可以有静态属性,但是只能访问外部类静态属性 非静态内部类:要实例化必须先实例化外部类,他是依赖于外部类实例的,所以他才能够有资格访问外部类的非静态属性,即使是private属性,但是非静态内部类中是不能有静态属性的 严格来说,...

php实例方法的区别是什么
php实例方法的区别有:1、静态方法不需要new,而实例方法需要new;2、静态方法中不能调用非静态属性;3、静态方法在内存中只有一份,且在一个php生命周期内资源共享,而实例方法在内存中会存在多份的情况。推荐:《PHP视频教程》php静态方法和实例方法的区别PHP面向对象编程中,常常会接触类和方法,其中...

php中static静态类与static 静态变量用法区别
静态 static 声明类成员或方法为 static ,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外)。静态成员属于类,不属于任何对象实例,但类的对象实例都能共享。

PHP中this,self和static的区别
静态函数只能使用静态变量,静态函数和变量的引用是通过 self::函数名() 和 self::变量名。上述实例中,静态变量的引用是由类名(exampleClass::$foo),或者 self:: (self::$foo),当在这个类的静态方法[称为 静态函数()]里使用时。类的正则函数和变量需要一个对象上下文来引用,他们不能脱离对象...

php 在什么情况下 ,只能实例化对象调用类方法,不能用静态static方法
类中没有静态方法就必须实例化 <?phpclass t1{ function i(){}} class t2{ static function i{}}\/\/ ?>

静态类注意事项
静态类不能拥有实例构造器,这意味着它们无法通过new关键字实例化。它们只能通过类名调用静态方法或访问静态成员。静态类不允许有任何实例成员。这意味着它们不能包含任何字段、属性或事件,这些成员只能是静态的。静态类不能使用abstract或sealed修饰符。这意味着它们不能声明为抽象类或密封类,这限制了静态...

python为什么要使用静态方法
1. 提高代码的可重用性:静态方法不依赖于类的实例或状态,这意味着它们可以在类的不同实例之间共享,也可以在完全不创建类的对象的情况下调用。这对于那些不需要访问实例属性或方法的函数来说非常有用,因为它们可以在多个地方重复使用,提高了代码的可重用性和效率。2. 封装相关功能:静态方法提供了一...

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被...
1、类中的静态属性会被加入到类对象(也可以叫做类的模板,是类的描述) 的构造器中,静态方法也会被加入到类对象中。2、当第一次使用类时,JVM会通过类加载器,加载类对象,从而初始化静态属性,并装入类的方法,包括静态方法和实例方法(方法不会被调用,只是加载,从这个意义上来说,静态方法和...

静态方法静态方法的弊端
另外,静态属性和方法共享的特性也带来了一定的问题。例如,如果A用户修改了静态属性,如UserName,所有其他访问用户都会看到相同的值,即使他们不是A用户。在处理需要个性化数据的情况下,这种共享可能会造成意外的用户混淆。静态方法和数据成员作为类的一部分,它们属于类而不是单个对象,这在需要共享信息时...

相似回答