码迷,mamicode.com
首页 > 其他好文 > 详细

static修饰的类属性

时间:2014-07-09 11:41:00      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:style   blog   使用   2014   cti   io   

我看书上说: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页。

 

static修饰的类属性,布布扣,bubuko.com

static修饰的类属性

标签:style   blog   使用   2014   cti   io   

原文地址:http://blog.csdn.net/moqiang02/article/details/37573441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!