PHP 5 для начинающих

Печать

Как показывает предыдущий пример, значение свойства name может быть любым, включая объект, массив целых чисел, дескриптор файла и др., однако во время установки свойства name невозможно выполнить какую-либо проверку данных или обновить другие значения.

Чтобы обойти эту проблему, рекомендуется реализовывать свойства в форме функций get[имя_Свойства] и set[имя_Свойства] , как показано ниже в разделе "Практика".

Практика Доступ к свойствам посредством методов get и set

Внесите в файл class.Demo.php выделенные изменения:< ?php

class Demo {

private $_name;

public function sayHello() {

print "Hello {$this->getName()}!";

}

public function getName() { return $this->_name;

}

public function setName($name) {

if(!is_string($name) || strlen($name) == 0) { throw new Exception("Недопустимое имя");

}

$this->_name = $name;

}

}

?>

Отредактируйте файл testdemo.php как показано ниже:<?php

require_once('class.Demo.php'); $objDemo = new Demo();

$objDemo->setName('Steve'); $objDemo->sayHello();

$objDemo->setName(37); //генерирует ошибку

?>

Как это работает

Уровень доступа к свойству name изменился с public на private и в начале имени переменной появился символ подчеркивания. Рекомендуется использовать символ подчеркивания для обозначения частных переменных и функций экземпляра. Вместе с тем это лишь соглашение и PHP этого не требует. Ключевое слово private не по