Day: July 2, 2007

  • php 5 中使用get成员方法返回对象可能存在的问题。

    "错误的类设计可能会改变本不应该改变的成员属性。"这个问题是在看 Java 的时候书中提到的。PHP5 默认传递的也是引用,那么可能也存在这个问题。于是跳下床来,做了个试验。果然……

    先看一段代码:

    <?php 
    /**
     * privateClass 
     *
     * 一个私有的类,在 publicClass 中使用
     */
    class privateClass
    {
        
    /**
         * name
         *
         * 保存一个名字 
         * 
         * @var string
         * @access protected
         */
        
    protected $name '';
        
    /**
         * __construct
         *
         * 构造函数 
         * 
         * @param string $name 
         * @access public
         * @return void
         */
        
    public function __construct($name)
        {
            
    $this->setName($name);
        }

        /**
         * getName 
         *
         * 获得名字
         * 
         * @access public
         * @return string
         */
        
    public function getName()
        {
            return 
    $this->name;
        }

        /**
         * setName
         *
         * 设置名字 
         * 
         * @param string $name 
         * @access public
         * @return void
         */
        
    public function setName($name)
        {
            
    $this->name $name;
        }
    }
    (more…)