Есть простой пример:
<?php
class A
{
protected $version;
function A()
{
$version = "1.1.1";
$a = new B();
}
}
class B extends A
{
function B()
{
echo "\nversion =" . $this->version;
}
}
$x = new A();
?>
Почему в конструкторе класса B не видно значения переменной version класса A?
Спасибо
Примечание:
В классе B объявление
protected $version
не помогает
Примечание:
Версия:
PHP 5.3.6-13ubuntu3.6 with Suhosin-Patch (cli) (built: Feb 11 2012 02:17:16)
Переделал используя "__construct". Доступа к protected-данным в потомках добиться не могу:
При выводе в потомке значение "$this->version" оказывается пустым
class A
{
protected $version;
function __construct()
{
$this->version = "1.1.1";
$a = new B();
}
}
class B extends A
{
function __construct()
{
echo "\nversion =" . $this->version; //При выводе значение "$this->version" оказывается пустым
}
}
Примечание:
2 HeX-1983 (hex hex):
Очевидно, что если создать объект класса А, то скрипт впадет в бесконечный цикл
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.