静态属性|与'this'和'self'的关系

时间:2011-03-12 20:17:41

标签: php

为什么需要静态指定才能正确解释?请参阅下面的代码中的评论。

<?php

require_once 'class.database.php';

class table extends database
{   
    static protected $_args=array(); // static added here to remove error   
    function __construct()
    {
        parent::__construct();
        self::protect();
    }
    function protect()
    {
        foreach($_POST as $key => $value)
        {
            self::$_args[$key] = mysql_real_escape_string($value);
        $i++;
        }
    }

。 。

1 个答案:

答案 0 :(得分:3)

类属性对象属性。类属性属于类本身,而不是实例,使用static声明,并使用self::进行访问。对象属性属于该类的实例,声明为static,并且使用$this->进行访问。

如果使用self::,则可以从对象方法访问类属性。但是您将访问其他实例访问的相同属性。

当然,您无法从静态方法访问对象属性,因为没有涉及对象/实例。