52568.fb2 Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 30

Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 30

Краткое описание:

Это статья про информатику...

Заносим в каталог статью: Кто такие хакеры,

автор Иванов Иван.

Краткое описание:

Это статья про хакеров...

Если же мы напишем вот так:

<?php

function Add_article($author="Иванов Иван",

$title, $description){

// ...действия как в предыдущем примере

}

Add_article("Кто такие хакеры",

"Это статья про хакеров...");

?>

То в результате получим:

Warning: Missing argument 3 for

add_article() in

c:\users\nina\tasks\func\def_bad.php

on line 2

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

В PHP4 можно создавать функции с переменным числом аргументов. То есть мы создаем функцию, не зная заранее, со сколькими аргументами ее вызовут. Для написания такой функции никакого специального синтаксиса не требуется. Все делается с помощью встроенных функций func_num_args(), func_get_arg(), func_get_args().

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

<?php

function DataCheck(){

$n = func_num_args();

echo "Число аргументов функции $n";

}

DataCheck();

// выведет строку

// "Число аргументов функции 0"

DataCheck(1,2,3);

// выведет строку

// "Число аргументов функции 3"

?>

Функция func_get_arg (целое номер_аргумента ) возвращает аргумент из списка переданных в функцию аргументов, порядковый номер которого задан параметром номер_аргумента. Аргументы функции считаются начиная с нуля. Как и func_num_args(), эта функция может использоваться только внутри определения какой-либо функции.

Номер_аргумента не может превышать число аргументов, переданных в функцию. Иначе будет сгенерировано предупреждение, и функция func_get_arg() возвратит False.

Создадим функцию для проверки типа данных, ее аргументов. Считаем, что проверка прошла успешно, если первый аргумент функции – целое число, второй – строка.

<?

function DataCheck(){

$check =true;

$n = func_num_args();

// число аргументов,

// переданных в функцию

/* проверяем, является ли первый

переданный аргумент целым числом */

if ($n>=1) if (!is_int(func_get_arg(0)))

$check = false;

/* проверяем, является ли второй

переданный аргумент строкой */