Могу ли я использовать переменную без объявления $ this-> myvar в php? - PullRequest
0 голосов
/ 13 мая 2011

В следующем коде переменные user и permissions не объявляются в начале как $ 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 ]

5 голосов
/ 13 мая 2011

Да, вы можете.

PHP автоматически создает общедоступные свойства при первоначальной установке, например,

class MyClass
{
    private $foo;

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

Единственный раз, когда это отличается, если у вас есть магический метод __set($name, $value), который будет перехватывать попытку записи в неопределенное или невидимое (в текущей области видимости) свойство.

0 голосов
/ 13 мая 2011

Да!

Возможно, при этом отправляется «предупреждающее сообщение», вы можете использовать ini_set («display_errors», 0), чтобы избежать этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...