Метод POST позволяет передать информацию, которая была введена пользователем в веб-форму, заключенную в теги

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

Данный механизм может быть применен для создания формы регистрации или обратной связи с посетителями. По данному принципу работают системы комментирования записей, например, в новостной ленте, гостевых книгах, форумах, чатах и т.п.
Чтобы применить метод, необходимо сначала объявить нужную функцию в файле:

function example() {
//перечень операций в функции
}
?>

В данном примере при помощи команды function объявляется создание функции с именем example, которая в дальнейшем будет использоваться для обработки введенных данных формы. После этого необходимо вывести форму HTML, через которую и будут вызываться функции PHP:



В данном случае создается форма, которая отсылает код к обработчику формы методом POST. Для инициализации функции в данном примере используется скрытое текстовое поле, которое и передает информацию дальнейшей ее обработки. Чтобы запустить нужную функцию, нужно будет установить факт нажатия пользователем кнопки. Если кнопка была нажата, описанная ранее функция будет запущена:

if (isset($_POST[‘function_start’]) == ‘go’) {
example(); }
?>

Данный код проверяет присутствие в скрипте переданных из формы данных посредством функции isset(). При наличии данных, введенных в скрытую форму, начинается выполнение объявленной ранее функции.

Передача информации методом GET может происходить без использования данных формы через введенный адрес. Аналогичным образом в начале скрипта объявляется нужная функция при помощи оператора function. После этого для передачи информации, например, можно создать ссылку HTML вида вместо

:

Передача GET

В данном случае к адресу добавляется элемент test с фиксированным значением 1, нужным для инициализации функции. Показатель test будет храниться в глобальном массиве $_GET.

if (isset($_GET[‘test’])) {
example($_GET[‘example’]); }

Данный код проверяет присутствие элемента массива в адресной строке. После этого скрипт инициализирует объявленную ранее функцию example для обработки данных и дальнейшего запуска программы.

И т.п. Вам необходимо реализовать свою функцию-обертку для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

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

function foo () {
echo "В foo()
\n" ;
}

function bar ($arg = "" )
{
echo "В bar(); аргумент был " $arg ".
\n" ;
}

// Функция-обертка для echo
function echoit ($string )
{
echo $string ;
}

$func = "foo" ;
$func (); // Вызывает функцию foo()

$func = "bar" ;
$func ("test" ); // Вызывает функцию bar()

$func = "echoit" ;
$func ("test" ); // Вызывает функцию echoit()
?>

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

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

class Foo
{
function Variable ()
{
$name = "Bar" ;
$this -> $name (); // Вызываем метод Bar()
}

Function Bar ()
{
echo "Это Bar" ;
}
}

$foo = new Foo ();
$funcname = "Variable" ;
$foo -> $funcname (); // Обращаемся к $foo->Variable()

?>

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

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

class Foo
{
static $variable = "статическое свойство" ;
static function Variable ()
{
echo "Вызов метода Variable" ;
}
}

echo Foo :: $variable ; // Это выведет "статическое свойство". Переменная $variable будет разрешена в нужной области видимости.
$variable = "Variable" ;
Foo :: $variable (); // Это вызовет $foo->Variable(), прочитав $variable из этой области видимости.

?>

С версии PHP 5.4.0, можно вызывать callable -функцию, помещенную в переменную.

Пример #4 Сallable-фукнции

class Foo
{
static function bar ()
{
echo "bar\n" ;
}
function baz ()
{
echo "baz\n" ;
}
}

$func = array("Foo" , "bar" );
$func (); // выведет "bar"
$func = array(new Foo , "baz" );
$func (); // выведет "baz"
$func = "Foo::bar" ;
$func (); // выведет "bar" в PHP 7.0.0 и выше; в предыдущих версиях это приведет к фатальной ошибке
?>

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

Список изменений

8 years ago

$ wget
$ grep -l "\$\.\.\." php-chunked-xhtml/function.*.html

List of functions that accept variable arguments.
array_diff_assoc ()
array_diff_key ()
array_diff_uassoc ()
array()
array_intersect_ukey ()
array_map ()
array_merge ()
array_merge_recursive ()
array_multisort ()
array_push ()
array_replace ()
array_replace_recursive ()
array_unshift ()
call_user_func ()
call_user_method ()
compact ()
dba_open ()
dba_popen ()
echo()
forward_static_call ()
fprintf ()
fscanf ()
httprequestpool_construct ()
ibase_execute ()
ibase_set_event_handler ()
ibase_wait_event ()
isset()
list()
maxdb_stmt_bind_param ()
maxdb_stmt_bind_result ()
mb_convert_variables ()
newt_checkbox_tree_add_item ()
newt_grid_h_close_stacked ()
newt_grid_h_stacked ()
newt_grid_v_close_stacked ()
newt_grid_v_stacked ()
newt_win_choice ()
newt_win_entries ()
newt_win_menu ()
newt_win_message ()
newt_win_ternary ()
pack ()
printf ()
register_shutdown_function ()
register_tick_function ()
session_register ()
setlocale ()
sprintf ()
sscanf ()
unset()
var_dump ()
w32api_deftype ()
w32api_init_dtype ()
w32api_invoke_function ()
wddx_add_vars ()
wddx_serialize_vars ()
?>

3 years ago

A small, but helpful note. If you are trying to call a static function from a different namespace, you must use the fully qualified namespace, even if they have the same top level namespace(s). For example if you have the following class to call:

namespace Project \ TestClass ;
class Test {
static function funcToCall () {
return "test" ;
}
}
?>
You must call it as:
namespace Project \ OtherTestClass ;
class OtherTest {
$func = "\Project\TestClass::funcToCall" ;
$func ();
}
}
?>
and not:
class OtherTest {
static function callOtherFunc () {
$func = "TestClass::funcToCall" ;
$func ();
}
}
?>

3 months ago

While the documentation suggests that the use of a constant is similar to the use of a variable, there is an exception regarding variable functions. You cannot use a constant as the function name to call a variable function.

const DEBUGME ="func";
function func($s) { echo $s. "\n"; }

DEBUGME("abc"); // results in a syntax error

$call = DEBUGME;
$call("abc"); // does the job

But you can use a constant as an argument to a function. Here"s a simple workaround when you need to call a variable constant function:

function dynamic($what, $with)
{
$what($with);
}
dynamic(DEBUGME, "abc");

This makes sense to me to hide API"s and/or long (complicated) static calls.
Enjoy!

13 years ago

If you want to call a static function (PHP5) in a variable method:

Make an array of two entries where the 0th entry is the name of the class to be invoked ("self" and "parent" work as well) and the 1st entry is the name of the function. Basically, a "callback" variable is either a string (the name of the function) or an array (0 => "className", 1 => "functionName").

Then, to call that function, you can use either call_user_func() or call_user_func_array(). Examples:

class A {

Protected $a ;
protected $c ;

Function __construct () {
$this -> a = array("self" , "a" );
$this -> c = array("self" , "c" );
}

Static function a ($name , & $value ) {
echo $name , " => " , $value ++, "\n" ;
}

Function b ($name , & $value ) {
call_user_func_array ($this -> a , array($name , & $value ));
}

Static function c ($str ) {
echo $str , "\n" ;
}

Function d () {
call_user_func_array ($this -> c , func_get_args ());
}

Function e () {
call_user_func ($this -> c , func_get_arg (0 ));
}

class B extends A {

Function __construct () {
$this -> a = array("parent" , "a" );
$this -> c = array("self" , "c" );
}

Static function c () {
print_r (func_get_args ());
}

Function d () {
call_user_func_array ($this -> c , func_get_args ());
}

Function e () {
call_user_func ($this -> c , func_get_args ());
}

$a =& new A ;
$b =& new B ;
$i = 0 ;

A :: a ("index" , $i );
$a -> b ("index" , $i );

$a -> c ("string" );
$a -> d ("string" );
$a -> e ("string" );

# etc.
?>

Итак, что такое функция (function)на PHP ?

Функция (function)- это мини-программа, которая выполняет какие-то полезные действия и выдает готовый результат.
Давайте посмотрим на схемку:

Попробуем по готовому шаблону функции написать мини программу.
Готовый шаблон функции:

Припустим, нам нужно написать функцию, которая сможет подсчитать сумму чисел 5 и 2 . Смотрим на шаблон и пишем:

Разберем код .
function suma() - это функция с именем suma ;
echo 5 + 2; - в теле функции мы указали, что числа 5 и 2 нужно сложить вместе (5 + 2) ;
suma(); - вызываем функцию. Вызов функции означает ее выполнение. То есть, задачка 5 + 2 должна быть выполнена и дать результат 7 .

Теперь попробуем рассмотреть функции поэтапно.

Этапы создания функции на PHP

Этап I . Создание функции
Вспомните готовый шаблон функции:

Вот таким способом создается функция на PHP.
Давайте в теле функции напишем текст «Я рад видеть вас на блоге сайт ».
Только не забудьте: текст пишем через .

"; } ?>

Теперь нужно вызвать функцию «сайт() ».

Этап II . Вызов готовой функции на PHP
Функция создана и теперь она должна быть выполнена. Для выполнения и вывода функции достаточно указать «имя функции(); »

сайт();

Это будет выглядеть вот так:

функции PHP - сайт "; } сайт(); ?>

Можно это сделать и так:

функции PHP - сайт "; } ?> Куча текста….. Куча текста…..

Введите в браузере адрес:

Результат:

Функции PHP с аргументами

Все примеры с функциями выше были без аргументов. Что такое аргумент я вам объясню на коде:

Итак, я создал функцию с именем «сайт ». В параметрах (там, где скобки) прописал через запятую две переменные $a и $b .

Function сайт ($a , $b )

$a и $b – это и есть два аргумента.
echo "$a + $b = "; – здесь я вывел на монитор текст. Результат: 5 + 5 =
echo $a + $b; – здесь я указал функции, что переменную $a и $b нужно сложить вместе.
сайт (15, 5); – вызвал функцию. Внимание: в скобках я указал два аргумента (15, 5) , которые ждет переменная $a и $b . Переменная $a получит первый аргумент – 15 , $b – второй 5 .

Для тех, кто не понял, куда подставляется аргумент и в какой очередности, вот схема:

Итак, готовый код:

Сохраните как «function.php » в папку «test-1 » локального сервера (см. урок 1).

Введите в браузере адрес:

https://localhost/test-1/function.php

Результат:

Давайте я немного усложню функцию и сделаю ее поинтересней. Добавлю в аргумент адрес блога и пропишу название ссылки.

Функция под именем «сайт » получит в переменную $link аргумент https://сайт/ , а переменная $title получит текст ссылки – «Блог сайт – создание сайта! »

Готовый код:

Сохраните как «function.php » в папку «test-1 » локального сервера (см. урок 1).

Введите в браузере адрес:

https://localhost/test-1/function.php

Результат:

Последнее обновление: 1.11.2015

Функции представляют собой набор инструкций, выполняющих определенное действие.

Синтаксис определения функции:

Function имя_функции([параметр [, ...]]) { // Инструкции }

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

После имени функции в скобках идет перечисление параметров. Даже если параметров у функции нет, то просто идут пустые скобки. Затем в фигурных скобках идет тело функции, содержащее набор инструкций.

Определим простейшую функцию:

Function display() { echo "вызов функции display()"; }

Данная функция не имеет параметров и все, что она делает - это вывод на страницу некоторого сообщения.

Чтобы функция сработала, ее надо вызвать. Теперь вызовем функцию:

Возвращение значения и оператор return

Функция может возвращать некоторое значение - число, строку и т.д., то есть некоторый результат. Для возвращения значения в функции применяется оператор return , после которого указывается возвращаемое значение. Например:

Функция get() возвращает число, представляющее сумму квадратов от 1 до 9. Это число хранится в переменной $result . Благодаря оператору return мы можем присвоить значение, возвращаемое функцией get, какой-нибудь переменной: $a = get(); .

Использование параметров

Создадим функцию с параметрами:

Так как теперь функция $get использует параметры, то мы должны передать при вызове этой функции на место параметров некоторые значения. Если при вызове мы укажем значения не для всех параметров, то это будет ошибка, например: $a = get(1); .

Но мы можем использовать значения по умолчанию для параметров. Например:

В этом случае, если мы не укажем значение для второго параметра, то по умолчанию он будет равен 10.

Передача по ссылке

В примере выше мы передавали параметры по значению . Но в PHP есть и другая форма передачи параметров - по ссылке . Рассмотрим два этих способа передачи параметров и сравним. Стандартная передача параметра по значению:

\$number равно: $number"; function get($a) { $a*=$a; echo "Квадрат равен: $a"; } ?>

После вызова функции get() значение переменной $number не изменится, так как в эту функцию в качестве параметра мы передаем значение переменной.

\$number равно: $number"; function get(&$a) { $a*=$a; echo "Квадрат равен: $a"; } ?>

При передаче по ссылке перед параметром ставится знак амперсанда: function get(&$a) . Теперь интерпретатор будет передавать не значение переменной, а ссылку на эту переменную в памяти, в итоге, переменная $number после передачи на место параметра &$a также будет изменяться.

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

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

Function имя_функции (параметры) { Тело функции }

Для лучшего усвоения давайте рассмотрим следующий пример. У нас есть здание и известна его высота. Нам нужно рассчитать время свободного падения предмета, брошенного с этого здания. Будем считать, что условия идеальны. Для решения этой задачи используем следующую функцию.

Function mytime($h, $g) { $t = pow(2*$h/$g, 0.5); echo "Время падения с высоты ".$h." при g = ".$g." составляет ".$t." секунд."; } mytime(100, 9.81);

Теперь давайте разберем приведенный выше код. Сначала мы создаем новую функцию mytime . Для этого прописываем специальное слово function, после которого указываем имя создаваемой функции. Также рядом в скобках через запятую не забываем указать параметры для создаваемой функции PHP. Если таких параметров нет, то их можно не указывать и оставить скобки пустыми. Далее с новой строки открываем фигурные скобки и прописываем в них тело функции. В нашем случае это формула для расчета времени свободного падения. Для этого создаем переменную $t, а в качестве значения присваиваем ей формулу расчета времени свободного падения.

После этого полученный результат выводим на экран при помощи . Теперь, если нам необходимо рассчитать время свободного падения, достаточно просто в нужном месте php-файла вызвать нашу php функцию, а в качестве параметров (в скобках) указать значение нужной нам высоты и и ускорения свободного падения.

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

Теперь давайте перейдем к рассмотрению еще одного варианта применения функций на примере ссылок. Для наглядности рассмотрим два примера функций – с параметрами и без них.

Функции PHP с параметрами и без параметров

В предыдущем примере про время свободного падения мы рассматривали функцию с параметрами. В нашем случае это были переменные $h и $g. В PHP можно применять также функции без параметров. В этом случае после названия функции в скобках ничего не пишется. Примером такой функции будет функция, выводящая какое-то уже готовое решение, например, ссылку или текст.

Function mylink () { echo "

В приведенном выше примере мы создаем функцию без параметров с именем mylink. Далее в теле функции прописываем, что нужно выводить обычную ссылку. Теперь при вызове этой функции в любом месте документа будет выводиться текст или ссылка, которые прописаны в теле функции mylink.

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

Function mylink ($link, $target, $title, $anchor) { echo "$anchor"; } $mylink = "https://archive.сайт"; $mytarget = "_blank"; $mytitle = "Создание и продвижение сайтов"; $myanchor = "Создание и продвижение сайтов"; mylink($mylink, $mytarget, $mytitle, $myanchor);

После получения значений переменными, мы вызываем функцию mylink и передаем ей параметры. В нашем случае это те переменные, которые мы создали перед этим. Теперь, как вы уже догадываетесь, значение переменной $mylink будет передано переменной $link, $mytarget — $target и т.д. В результате этого функция mylink примет те параметры, которые нам необходимы и выведет соответствующий результат на экран в виде ссылки.

Надеюсь, вы поняли всю суть функций PHP. Если нет, то рекомендую еще раз прочитать статью и проработать примеры. Материал не сложный, но очень важный поэтому, если вы всерьез решили изучить PHP, рекомендую тщательно проработать весь материал.

На этом данная статья подошла к концу. Если вы не хотите пропустить последних новостей сайта, рекомендую подписаться на новостную рассылку любым удобным для вас способом в пункте « » либо воспользоваться формой ниже.

На этом все. Удачи вам и успехов в изучении основ PHP.