Комментарии

Функции и методы PHP
( 0 Голосов )

Большая часть кода программ, написанных для Joomla, содержится в теле функций, которые, в свою очередь, находятся в классах. Но иногда функции создаются как автономные единицы программного кода и не входят в состав классов. Функции, объявляемые в классах, зачастую называются методами (именно так их принято называть в языках ООП), хотя многие пользуются обозначениями "функция" и "метод" попеременно. Следует также заметить, что в языке РНР зарезервировано ключевое слово только для функции, но не для метода.

Структура функции

У функции имеется следующая структура:

function <имя функции> (<аргументы функции, если таковые имеются>) { 
// начало тела функции <код функции, если таковой имеется> }
// конец тела функции

Ниже приведен пример определения простой функции.

public function setLastVisit($timestamp = null) {

// создать объект таблицы пользователей $table = $this->getTable(); $table->load($this->id) ; return $table->setLastVisit($timestamp); }

В определении этой функции указан модификатор доступа public, а это означает, что ее можно вызывать из любого класса. У данной функции имеется единственный аргумент $timestamp, который по умолчанию имеет пустое значение null. Следовательно, данную функцию можно вызывать, по существу, без аргументов. Но если не указать значение по умолчанию при вызове функции setLastVisit (), то будет получено сообщение об ошибке. Тело данной функции состоит из трех строк кода. В последней строке кода используется оператор return для возврата значения. Это означает, что данную функцию можно вызвать в операторе присваивания, как показано ниже.

$х = $user->setLastVisit($myTimestamp);

В данном случае значение, возвращаемое функцией setLastVisit (), сохраняется в переменной $х. Количество и порядок следования аргументов в вызове функции или метода называется сигнатурой.

Область действия переменной в функции

Имена переменных в теле функции связаны только с самой функцией. В предыдущем примере при вызове функции setLastVisit () в качестве аргумента ей передавалась переменная $myTimestamp. В теле данной функции переменная $myTimestamp не определена, но ее значение известно по имени переменной $timestamp. По завершении данной функции переменная $timestamp оказывается неопределенной. По желанию в теле функции можно было бы воспользоваться тем же самым именем переменной, что и при вызове функции. Но и в этом случае обе переменные были бы разными, поскольку у них разные области действия, хотя и одинаковые имена. Одна из них определяется в теле функции, а другая — за пределами функции.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код