Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мова РНР.Питання до заліку.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Списки аргументов переменной длины

PHP 4 и выше поддерживает списки аргументов переменной длины для функций, определяемых пользователем. Реализация этой возможности достаточно прозрачна и заключается в использовании функций func_num_args(), func_get_arg() и func_get_args().

Необходимости в специфическом синтаксисе нет, при этом список аргументов также может быть указан явно и будет обладать тем же поведением.

Функции, определяемые пользователем

Возврат значений

Функции

PHP Manual

Возврат значений

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием return().

Замечание:

Если конструкция return() не указана, то функция вернет значение NULL.

Пример #1 Использование конструкции return()

<?php function square($num) {     return $num * $num; } echo square(4);   // выводит '16'. ?>

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример #2 Возврат нескольких значений в виде массива

<?php function small_numbers() {     return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers(); ?>

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример #3 Возврат результата по ссылке

<?php function &returns_reference() {     return $someref; } $newref =& returns_reference(); ?>

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно о ссылках.

Аргументы функции

Обращение к функциям через переменные

Функции

PHP Manual

Обращение к функциям через переменные

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

Переменные функции не будут работать с такими языковыми конструкциями как echo(), print(), unset(), isset(), empty(), include(), require() и другими подобными им операторами. Вам необходимо реализовывать свою функцию-обертку (wrapper) для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

Пример #1 Работа с функциями посредством переменных

<?php function foo() {     echo "In foo()<br />\n"; } function bar($arg = '') {     echo "In bar(); argument was '$arg'.<br />\n"; } // Функция-обертка для echo function echoit($string) {     echo $string; } $func = 'foo'; $func();        // Вызывает функцию foo() $func = 'bar'; $func('test');  // Вызывает функцию bar() $func = 'echoit'; $func('test');  // Вызывает функцию echoit() ?>

Вы также можете вызвать методы объекта, используя возможности PHP для работы с переменными функциями.

Пример #2 Обращение к методам класса посредством переменных

<?php class Foo {     function Variable()     {         $name = 'Bar';         $this->$name(); // Вызываем метод Bar()     }          function Bar()     {         echo "This is Bar";     } } $foo = new Foo(); $funcname = "Variable"; $foo->$funcname();  // Обращаемся к $foo->Variable() ?>

При вызове статических методов, вызов функции "сильнее" чем оператор доступа к статическому свойству:

Пример #3 Пример вызова переменного метода со статическим свойством

<?php class Foo {     static $variable = 'static property';     static function Variable()     {         echo 'Method Variable called';     } } echo Foo::$variable; // Это выведет 'static property'. Переменная $variable будет разрешена в нужной области видимости. $variable = "Variable"; Foo::$variable();  // Это вызовет $foo->Variable(), прочитав $variable из этой области видимости. ?>

Смотрите также call_user_func(), Переменные переменные и function_exists().

Возврат значений

Встроенные функции

Функции

PHP Manual

Встроенные функции

В самом PHP содержится достаточно большое количество встроенных функций и языковых конструкций. Также есть функции, которые требуют, чтобы PHP был собран со специфическими расширениями, в противном случае вы получите сообщение о фатальной ошибке, вызванной использованием неизвестной функции. Например, для того чтобы использовать функции для работы с изображениями, например, imagecreatetruecolor(), вам необходимо собрать PHP с поддержкой GD. Или же для того, чтобы воспользоваться функцией mysql_connect(), вам необходима поддержка модуля MySQL. Тем не менее, есть много встроенных функций, которые доступны всегда: например функции обработки строк и функции для работы с переменными. Вызвав phpinfo() или get_loaded_extensions(), вы можете узнать, поддержка каких модулей есть в используемом вами PHP. Также следует учесть, что поддержка некоторых дополнительных расширений включена по умолчанию, и что сама документация к PHP разбита по расширениям. Ознакомьтесь с разделами Конфигурация, Установка, а также с документацией непосредственно к дополнительным расширениям для получения более детальной информации о том, как настроить ваш PHP.

Более подробную информацию о том, как следует читать и интерпретировать прототипы функций, вы можете найти в разделе Как правильно читать описания функций. Очень важно понимать, что возвращает функция, или как именно она модифицирует передаваемые аргументы. Например, функция str_replace() возвращает модифицированную строку, в то время как функция usort() работает с фактически переданной переменной. Каждая страница документации также содержит информацию, которая специфична для данной функции, например, информацию о передаваемых параметрах, изменениях в поведении, возвращаемых значениях в случае как удачного, так и неудачного выполнения, доступности функции в различных версиях. Знание и применение этих (порой даже незаметных) нюансов очень важно для написания корректного PHP-кода.

Замечание: Если в функцию передаются не те аргументы, которые она ожидает, например, массив (array) вместо строки (string), возвращаемое значение функции не определено. Скорее всего в этом случае будет возвращен NULL, но это просто соглашение, на него нельзя полагаться.

Ознакомьтесь также с описанием функции function_exists(), справочником функций и функциями get_extension_funcs() и dl().

Обращение к функциям через переменные

Анонимные функции

Функции

PHP Manual