Синтаксическая ошибка, когда в классе, но не в открытом?

Когда я делаю:

class MyClass {
  public $copy = file_get_contents('somefile.mdown');
}

Я получил:

PHP Parse error:  syntax error, unexpected '(', expecting ',' or ';' \
in /file.php on line 25

Я новичок в классах в PHP, но не в ООП.

Я могу, конечно, просто сделать file_get_contents вне класса, и все хорошо. Что с этим?

1 ответ

Решение

Пытаться

class MyClass 
{
   public var $copy;

   public function MyClass()
   {
      $this->copy = file_get_contents('somefile.mdown');
   }
};

$obj = new MyClass();

Когда я объявляю $ copy в классе с

   public var $copy;

Я говорю: "Когда я создаю объект типа MyClass, у него будет переменная-член с именем" copy "".

Только когда этот класс создан и называется конструктор (то есть $obj = new MyClass), $ copy существует как часть некоторой вещи типа MyClass. В приведенном выше конструкторе (функция MyClass) эта переменная является переменной $ this, что означает "текущую вещь, над которой мне велели работать". В этом случае это может быть $ obj в примере выше.

Ура, -Дуг

Другие вопросы по тегам