Синтаксическая ошибка, когда в классе, но не в открытом?
Когда я делаю:
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 в примере выше.
Ура, -Дуг