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页。

     

  • 相关阅读:
    Spring-12-spring整合Mybatis
    Spring-11-AOP面向切面编程
    jQuery选择器之表单元素选择器
    phpsmarty分配变量
    angular
    ajax 第四步
    ajax第三步
    php+ajax+jq
    二十三种设计模式[4]
    二十三种设计模式[3]
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061251.html
Copyright © 2011-2022 走看看