zoukankan      html  css  js  c++  java
  • static修饰的类属性

    我看书上说:static成员总是唯一存在的,并且在多个对象之间互享。

    因此想到,如果我在a.php中实例化了Person.class.php这个类,并给static $name赋值,那么在b.php中再次实例化这个类,b中能不能读取name属性的新值呢?

    代码如下:

    Person.class.php

    <?php
        class person{
            public static $name;
    		
            function __construct($name='vv'){
                //self::$name = $name;
            }
    
            function getName(){
                return self::$name;
            }
        }
    ?>

     

    a.php

    <?php 
        include 'Person.class.php';
    
        $ren = new Person();
        Person::$name = 'aa';
        echo $ren -> getName(); //aa
    
        $ren2 = new Person();
        echo $ren2 -> getName(); //aa
    
    ?>

     

    b.php

    <?php 
        include 'Person.class.php';
    
        $ren3 = new Person();
        echo $ren3 -> getName(); //null
    ?>


     事实证明:static成员只能在“同一脚本”的多个对象之间互享,b.php并不能读取a.php设置的属性值,后来想到这也理所当然,因为php可以同时产生多个进程,当执行完一个脚本后会自动释放内存,因此b.php无法读取a.php设置的属性!

     

    static完整使用说明:见《细说php》第284页。

     

  • 相关阅读:
    日志模块
    DDT数据驱动
    unittest测试框架
    vim编辑器
    文件夹的管理
    文件内容查看(如查看日志)
    文件的移动和拷贝
    文件的增删改查
    linux基本命令
    测试5--模拟一个在控制台不断按时分秒打印的电子表
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061251.html
Copyright © 2011-2022 走看看