вопрос по ООП

aXis

Новичок
Я делаю так. Создаю класс. Делаю поля Public и обращаюсь к ним напрямую. Надо что то уточнить при доступе -превращаю в Privat и юзая __get __set делаю сеттеры и геттеры. Клиентский код разницы не видит.
 

denver

?>Скриптер
aXis
Создаю класс. Делаю поля Public и обращаюсь к ним напрямую. Надо что то уточнить при доступе -превращаю в Privat и юзая __get __set делаю сеттеры и геттеры. Клиентский код разницы не видит.
Ну разница там все же есть. Выведи isset (или empty) переменной которую ты отдаешь с помощью __get(). Ответ неочевиден, так что дебажить придется долго, если не знать.
 

Observer

Новичок
Ну разница там все же есть. Выведи isset (или empty) переменной которую ты отдаешь с помощью __get(). Ответ неочевиден, так что дебажить придется долго, если не знать.
Для этого есть __isset
 

aXis

Новичок
Observer
Совершенно верно. Однако я долго писал на с# и привык юзать
if($obj->Parameter==null)
Мне тяжело пользоваться скриптовостью пхп, несмотря на то, что с него начинал. Отвык. Мне легче догадаться проверит $obj->isEmpty() или $obj->Empty==true чем вспомнить про isset

Тем более если кто то запрашивает поле которое не может быть нулл, сразу генерится исключение.
 
Сверху