我可以使用变量而不用PHP中的$ this-> myvar来声明吗?

时间:2011-05-13 05:54:30

标签: php variables

在下面的代码中,变量用户和权限不会在开头声明,如$ data,$ module等。这些$ this-> user和$ this->权限用于此类的扩展类中

我的问题是我可以在不声明和使用$ this-> myvar?

的情况下使用变量

提前致谢。

class MY_Controller extends CI_Controller {

// Deprecated: No longer used globally
protected $data;
public $module;
public $controller;
public $method;

public function MY_Controller()
{
      .......
     $this->user = $this->ion_auth->get_user();
     .........
     // List available module permissions for this user
    $this->permissions = $this->user ? 
     $this->permission_m->get_group($this->user->group_id) : array();

2 个答案:

答案 0 :(得分:5)

是的,你可以。

PHP在初始设置时自动创建公共属性,例如

class MyClass
{
    private $foo;

    public function __construct()
    {
        $this->bar = 'bar'; // Now contains "public $bar"
    }
}

唯一不同的是,如果你有一个魔术__set($name, $value)方法,它会捕获尝试写入未定义或不可见(在当前范围内)的属性。

答案 1 :(得分:-1)

是的!

也许这会发送'警告信息',你可以使用ini_set('display_errors',0)来避免它。