|
|
|
| несли не трудно можете объяснить по подробнее
заранее спасибо | |
|
|
|
|
|
|
|
для: iMozgoloMchik
(31.07.2011 в 22:47)
| | ну предположим у вас есть класс, хранит данные о пользователе (которые хранятся, к примеру, в БД). тогда ваш класс будет выглядеть так:
<?php
class User{
private $info = array();
public function __constructor(){
//тут мы берём данные о пользователе и помещать в массив $info
}
public function __get($var){
return $this->info[$var];
}
}
$user = new User(/*тут вводим логин и пароль, к примеру */);
echo $user->mail;
?>
|
в этом примере при вызове $user->mail вызывается функция __get(); и вам выведется $info['mail'];
конечно можно сделать этот массив доступным (не private, а public), но это немного... не в духе ООП что ли :)
тожесамое и про __set();. Если вы хотите внести в объект класса много разной информации (к примеру тоже заполнить данные о пользователе, но ручками через форму), то намного удобнее будет писать $user->mail = "mail@mymail.ru"; чем вводить каждые новый данные через функцию (хотя у меня в классе всё равно есть такие функции. К примеру setId(), setLogin(), setPass())
Надеюсь я более-менее понятно объяснил | |
|
|
|
|
|
|
|
для: DEM
(01.08.2011 в 00:59)
| | мне было более менее понятно и полезно. Я как раз только начинающий в ООП и пытаюсь всячески изучить.
только вот один вопрос есть.
Что будет если к примеру метка "mail" совпадает с методом "mail" в этом же классе? | |
|
|
|
|
|
|
|
для: Ильдар
(01.08.2011 в 01:04)
| | по идее ничего, но можно попробовать | |
|
|
|
|
|
|
|
для: DEM
(01.08.2011 в 00:59)
| | это как я понял позволяет создавать ассоциативные и индексные массивы
array( 0 => mail ) - __get()
array( mail => mail@mail.ru ) - __set() | |
|
|
|