为什么在PHP 5中静态...示例

opH*_*AME 2 php php-5.2

谁能解释一下这两个班级之间的区别?为什么要使用satic调用而不是新对象?

class User 
{

  protected $users = array();

/**
 * Create new user
 *
 * @param string $name Username
 * @return array Users
 */
public function create($name)
{
    $this->users[] = $name;
    return $this->users;
}
}

$u = new User();
var_dump($u->create('TEST'));

class User
{
    protected static $users = array();

/**
 * Create new user
 *
 * @param string $name Username
 * @return array Users
 */
public static function create($name)
{
      self::$users[] = $name;
      return self::$users,
}
}

$u = User::create('TEST');
var_dump($u);
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 6

非静态成员绑定到单个实例.如果您需要工厂或实例注册表,那么这不是您想要的,因此我们将相关成员设置为静态.