Проверка типа переменной в PHP


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

Созданная нами в предыдущем посте функция square() успешно работает, но она имеет один существенный недостаток: когда переданное с помощью метода GET значение не является числом (рис. 2.7), а например, является текстовой строкой - например, когда мы передаем значение test с помощью следующего вызова:

http://localhost/function.php?a=test

Однако наш скрипт ничего не заметит, и вычисляет и выдает как результат значение «test х test = 0» - что не имеет никакого смысла. Итак, перед тем как проводить собственно вычисления, необходимо выполнить проверку того, были ли переданы именно численные значения.

Здесь на помощь приходит функция is_numeric(), которая возвращает значение true в том случае, если параметр имеет численное значение, и false, если это не так. Далее мы организуем проверку возвращенного значения с помощью оператора if, и все вычисления будут выполняться только в том случае, если переданное значение является числом, в противном случае с помощью оператора else выдается короткая подсказка.

<?
$a = $_GET ['а'];
if (is_numeric($a)) echo ,"$a × $a = ", square($a);
else echo "Пожалуйста, укажите числовое значение!";
?>

Перед этим с помощью функции isset($a) мы можем проверить, было ли вообще передано значение для переменной $a. Если было, то мы продолжаем и проверяем, было ли передано число, в противном случае мы выдаем сообщение с требованием ввести число. Это может выглядеть так:

<?
$a = $_GET['а'];
if (isset($a)) {
if (is_numeric($a)) echo "$a ×-$a = ", square($a); else echo "$a не является числом.";
} else echo "Пожалуйста, укажите числовое значение для a.";
?>

Таблица 2.4. Наиболее важные функции для работы с переменными

Функция Пояснения
empty($a) Возвращает true, если $a является пустой. Внимание, значение 0 также рассматривается как пустое!
isset($a) Возвращает true, если переменная $a существует, даже если она при этом является пустой
is_number($a) Возвращает true, если переменная $a имеет численное значение
is_int($a) Возвращает true, если переменная $a является целым числом
is_bool($a) Возвращает true, если переменная $a имеет логическое значение (true или false)
is_float($a) Возвращает true, если переменная $a является числом с плавающей запятой
gettype(Sa) Возвращает тип переменной $a, среди возможных вариантов: boolean, integer, double и string
settype($a, Type) Устанавливает тип переменной $а. Например, команда $a="1 книга" создает переменную строкового типа (string). После выполнения команды settype ($a, " integer") переменная $a будет иметь целочисленный тип (integer) и теперь содержит значение 1. Для типа, кроме прочих других, могут использоваться следующие значения: boolean (начиная с PHP 4.2.0 - bool), integer (начиная с PHP 4.2.0 - int), double (начиная с PHP 4.2.0 - float) и string

 

Люди, а не машины: Брайан Бехлендорф (Brian Behlendorf)

Брайан Бехлендорф живет в солнечной Калифорнии и является создателем Apache - наиболее популярного Web-сервера, который оказал наибольшее влияние на развитие сети Интернет. В начале девяностых годов Бехлендорф учился в университете Беркли и в 1993 году - за два года до начала большого интернет- бума - организовал вместе с Джонатаном Нельсоном (Jonathan Nelson) фирму, которая занималась Web-дизайном. В 1994 году он разработал «Hotwired» - Web- сайт для культового журнала «Wired». В процессе работы над этим сайтом он понял, что существующие Web-серверы являются недостаточно мощными и функциональными, после чего Брайан начал работать над собственным сервером, которому он присвоил имя Apache, и для профессиональной разработки которого в феврале 1995 года была создана Apache Group.

 


Тэги:

Комментарии: 0

Прокомментировать »

 
 
 

Прокомментировать

 
 
Сообщение *
 
Проверочный код *
 
 
 
Яндекс.Метрика