首页 > 代码库 > static修饰的类属性
static修饰的类属性
我看书上说:static成员总是唯一存在的,并且在多个对象之间互享。
因此想到,如果我在a.php中实例化了Person.class.php这个类,并给static $name赋值,那么在b.php中再次实例化这个类,b中能不能读取name属性的新值呢?
代码如下:
Person.class.php
<span style="font-size:14px;"><?php class person{ public static $name; function __construct($name='vv'){ //self::$name = $name; } function getName(){ return self::$name; } } ?></span>
a.php
<span style="font-size:14px;"><?php include 'Person.class.php'; $ren = new Person(); Person::$name = 'aa'; echo $ren -> getName(); //aa $ren2 = new Person(); echo $ren2 -> getName(); //aa ?></span>
b.php
<span style="font-size:14px;"><?php include 'Person.class.php'; $ren3 = new Person(); echo $ren3 -> getName(); //null ?></span>
事实证明:static成员只能在“同一脚本”的多个对象之间互享,b.php并不能读取a.php设置的属性值,后来想到这也理所当然,因为php可以同时开启多个进程来执行脚本,而且当执行完一个脚本后会自动释放内存,因此b.php无法读取a.php设置的属性!
static完整使用说明:见《细说php》第284页。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。