Код: Выделить всё
function one(a,b){
$this->a=a;
$this->b=b;
}
Код: Выделить всё
function one(a,b){
$this->a=a;
$this->b=b;
}
Притянутый за уши пример. Никто так не делает. А если кто и делает, то это скорее исключение, присваивать в одном методе несколько переменных.Антон писал(а):Объясните вообще для чего это используется?
Код: Выделить всё
Class retro {
private $retrolend;
public function setRetrolend($params){
$this->retrolend = $params;
}
}
Есть несколько примеров в книге у Sam Dark. Например, когда нужно сделать какую-то переменной доступной только для чтения, а какую-то только для записи:Но вот зачем делать переменную приватной, а потом ей передавать значение через публичную функцию я сам не знаю, и было бы круто, если бы кто то тут написал пример когда такое делать просто необходимо, иначе будет ошибка.
Код: Выделить всё
class MyClass extends CComponent
{
private $read = 'read only property';
private $write = 'write only property';
public function getRead()
{
return $this->read;
}
public function setWrite($value)
{
$this->write = $value;
}
}
$object = new MyClass();
// gives us an error since we are trying to write to read-only
property
$object->read = 'value';
// echoes 'read only property'
echo $object->read;
// gives us an error since we are trying to read to write-only
property
echo $object->write;
// writes 'value' to private $write
$object->write = 'value';
Принципы ООП же. Пример слишком простой. Но суть в том, что в идеале публичных переменных быть не должно, ты как бы общаешься с объектом. Говоришь ему что-то сделать, и его внутреннее устройство волновать не должно, а должен быть какой-то интерфейс для общения. Геттеров, сеттеров естественно в идеале быть тоже не должно.Та как создав объект класса где нибудь вне класса вы не сможете поменять приватную переменную, то и делают публичные функции для ее смены, и далее объект это класса будет использоваться уже с присвоенной вами переменной, то есть все методы и атрибуты класса зависящие от переменной понесут изменения... Но вот зачем делать переменную приватной, а потом ей передавать значение через публичную функцию я сам не знаю, и было бы круто, если бы кто то тут написал пример когда такое делать просто необходимо, иначе будет ошибка.
Я же писал "в идеале". То есть например собаке говоришь "к ноге", и тебе не нужно двигать самому ее лапы, или давать команды вроде "правую переднюю лапу поставить по такой то ширине долготе, левую заднюю...".Пример для меня внес понимания, а вот на счет того чтоб управлять объектом только с помощью методов, может это и правильно, но как то не гибко, подходит только для специализированных вещей каких то, а если нужно чтоб объект был настраиваемым, и не только выполнял действия, но и принимал параметры, взаимодействовал как то с другими объектами, как быть то, если объект не будет принимать в параметров
Код: Выделить всё
privare a;
function one{
}
function two{
}
Код: Выделить всё
private function name(){}