Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Создание поля класса...


Автор: Alone 13.1.2006, 13:42
Доброго дня.
Вот задумался, а собсно почему в пхп "прокатывает" следующая ситуация:

Код

class a{
    var $x;
    var $y;
}

$a = new a();

$a->x = 1; // это нормально
$a->y = 2; // тоже порядок
$a->z = 3; // сработает, но на каком основании??? Ведь я не объявлял её в классе...



Автор: Mal Hack 13.1.2006, 14:15
В PHP вообще с этим делом сложно. Тут главное инициализировать переменную до ее использования. Вот судя по всему по этму и прокатывает. Хотя, не думаю, что в Си, к примеру такое прокатило.

Автор: HalkaR 13.1.2006, 14:46
Это на каком ПХП? Если на 4-м, то неудивительно.

Автор: Alone 13.1.2006, 16:41
Цитата(Mal Hack @ 13.1.2006, 14:15 Найти цитируемый пост)

Тут главное инициализировать переменную до ее использования


в пхп4 на if($a->z == 10)
интерпретатор макисмум нотайс выдаст...

а вот в сях по башне получить можно за такое smile

Цитата(HalkaR @ 13.1.2006, 14:46 Найти цитируемый пост)

Это на каком ПХП? Если на 4-м, то неудивительно.

ну да. на нем, родимом... Я как бы не особо озабочен, просто интересно, чем руководствовались разработчики...

Автор: Mal Hack 13.1.2006, 18:10
Цитата(Alone @ 13.1.2006, 16:41 Найти цитируемый пост)

интерпретатор макисмум нотайс выдаст...

Не максимум, а именно Нотайс.

Автор: HalkaR 13.1.2006, 19:48
Цитата(Alone @ 13.1.2006, 16:41)
Цитата(HalkaR @  13.1.2006,  14:46 Найти цитируемый пост)

Это на каком ПХП? Если на 4-м, то неудивительно.

ну да. на нем, родимом... Я как бы не особо озабочен, просто интересно, чем руководствовались разработчики...

Коли под 5-м запустишь тож по бошке получишь.

Автор: Illuminaty 13.1.2006, 20:47
HalkaR, вы не правы. Если в 5 запустишь, то не получишь по башке. Будет все тот же Notice.

Автор: IBSN 15.1.2006, 13:15
так и не только в классах...
$a[0] = "t"; // тоже прокатит, если не объявить Array

после пхп на сях начинаешь непроизвольно забывать объявлять... ужс.

Автор: IZ@TOP 16.1.2006, 02:16
В 5 РНР у классов появилась возможность создания методов get/set.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)