Вероятно кому-то мой вопрос покажется глупым, и наверное он такой и есть, но извините и не судите строго, такая на первый взгляд очевидная штука как присвоение значения свойству класса вызвала у меня непонимание происходящего, подскажите, как присвоить значение одного свойства класса другому свойству этого же класса, в данном случае компилятор ругается на точку с запятой и я не понимаю почему. Подскажите как это делается правильно?
class Some_class{
public $var1 = 'some_text';
public $var2 = $this->var1.'some_text';
}
Как ответил @etki, на момент объявления класса еще нет $this, поэтому $this->var1 еще не существует, и использовать его для инициализации другого свойства еще нельзя.
Однако, если очень хочется, то можно объявить какие-то значения константами, и использовать их при инициализации переменных
class Some_class{
const MYTEXT = 'some_text';
public $var1 = self::MYTEXT;
public $var2 = self::MYTEXT.'some_text';
}
$sc = new Some_class();
var_dump($sc);
PHP поддерживает подобную обработку только в конструкторе:
class Example {
private $alpha = 1;
private $beta;
public function __construct()
{
$this->beta = $this->alpha + 1;
}
}
В данном случае вы только описываете класс, поэтому не можете использовать выражения для указания значений - в этом контексте попросту нету $this, т.к. вы задаете значения по умолчанию еще до того, как дойдет до создания объектов.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу разобраться с кодировкойДанная функция выполняется, и просит запрос ввода
Подключил glfw к Code::Blocks , пишет cannot find -lglfw3 причем dll в папке lib-mingw есть
ребята, мне действительно нужна ваша помощьЯ изучаю boost :: asio и у меня есть 2 проблемы, которые я не могу делать за день
Обычно, всплывающие подсказки реализуются посредством заполнения структуры NOTIFYICONDATA + передачей это структуры в функцию Shell_NotifyIconAЕсли у экземпляра...