Это, вероятно, довольно простой, но я не в состоянии понять, как фраза, так что здесь идет речь для Google:PHP: объявить переменную класса, чтобы быть объектом StdClass
Итак, я часто делаю что-то вроде этого ...
class foo {
private $bar = array();
}
... установить свойство класса как массив. Тем не менее, я хотел бы сделать частную собственность объект вместо этого, что-то вроде этого:
class foo {
private $bar = new stdClass();
}
Я попробовал несколько вариантов этого и ни один из них не работал. Это можно сделать? Для бонусных очков вы можете назначить частную собственность другим классам?
Спасибо!
Хорошо, что работает. Однако, что, если я хочу, чтобы этот класс расширялся другими классами, которые могут переопределить конструктор? Есть ли способ обеспечить, чтобы $ bar оставался объектом? – Andrew
см. Мои изменения в примечаниях ... а также просмотрите Руководство по классам и объектам: http://php.net/manual/en/language.oop5.php – prodigitalson
Спасибо за расширенный пример, я вижу, как вы это сделали. Я хочу, чтобы вы могли просто объявить что-то объектом, так как вы можете объявить его массивом. Это позволило бы мне «лучше проверить код»: мне не нравится, когда пользователям нужно вызвать родительский конструктор, потому что они, кажется, всегда забывают и не могут понять, почему вещи не работают. Однако иногда вы должны делать то, что должны делать. Спасибо за помощь!! – Andrew