Оператор предупреждения об ошибках
Оператор выполнения
Операторы конкатенации для строк и массивов
Для объединения (конкатенации) строк в PHP используется оператор ".".
Оператор "." можно использовать в составном операторе присваивания – ".=".
Пример 4.6.35. Конкатенация строк:
$n_str = "1";
$str = "String ";
// $str1 получит значение "String 1"
$str1 = $str.$n_str;
// $str2 получит значение "String 1-1"
$str.= $str."-1";
Для слияния двух массивов используется оператор "+".
Пример 4.6.36. Конкатенация массивов:
$a = array(1=>"1", 2=>"2");
$b = array(1=>"3", 4=>"4", 5=>"5");
$c = $a + $b;
Массив $c будет иметь 4 элемента с ключами 1, 2, 4 и 5 и со значениями соответственно "3", "2", "4" и "5"(значения с одинаковыми ключами будут заменены).
Выражение, заключенное в обратные апострофы (символ "`"), рассматривается интерпретатором PHP как команда и направляется обработчику команд операционной системы Web-сервера. Результатом выражения является вывод выполненной команды.
|
|
Пример 4.6.37. Выполнение команды:
Оператор
$output = `dir`;
выведет в Windows содержимое текущего каталога компьютера. Для Unix аналогичное действие вызовет оператор
$output = `ls -l`;
В PHP определен оператор @ (отключение ошибок). Если разместить данный оператор перед любым выражением (возможно, включающим вызовы функций, генерирующих предупреждения), то сообщения об ошибках в этом выражении будут подавлены и в окне браузера не отображены.
Пример 4.6.38. Использование оператора @:
Выполнение операторов:
$a = 3;
$b = 0;
$c = $a/$b;
вызовет сообщение об ошибке
Warning: Division by zero in D:\TestASP\hello.php on line XX
Если последний оператор изменить следующим образом
$c = @($a/$b);
то сообщение об ошибке сгенерировано не будет (следует отметить, что текст последнего выведенного сообщения об ошибке хранится в описанной выше предопределенной переменной $php_errormsg).
Определить тип переменной в PHP можно с помощью функции
gettype(переменная)
Эта функция возвращает строку, которая, в соответствии с текущим типом переменной, имеет одно из следующих значений: "array", "object", "integer", "double", "string", "boolean", "resource", "NULL" или "unknown type".
Пример 4.6.39. Использование функции gettype():
$a = 0;
$a_type = gettype($a);// $a_type получит значение "integer"
…
$a = "0";
$a_type = gettype($a);// $a_type получит значение "string"
Кроме функции gettype(), для определения типа переменной можно использовать также функции:
· is_array(переменная)– для проверки, является ли переменная массивом;
· is_bool(переменная)– для проверки, является ли переменная булевским значением;
|
|
· is_float(переменная)– для проверки, является ли переменная вещественным числом;
· is_integer(переменная)– для проверки, является ли переменная целым числом;
· is_null(переменная)– для проверки, имеет ли переменная значение NULL;
· is_object(переменная)– для проверки, является ли переменная объектом;
· is_resource(переменная) – для проверки, является ли переменная ресурсом;
· is_string(переменная) – для проверки, является ли переменная строкой.
Эти функции возвращают true, если переменная имеет соответствующий тип и false – в противном случае.
Пример 4.6.40. Использование функций is_integer() и is_float():
$a = 0;
$is_int = is_integer($a); // $is_int получит значение true
$is_flo = is_float($a); // $is_flo получит значение false
Функции is_numeric(переменная) и is_scalar(переменная) позволяют определить, является ли переменная числовой или скалярной.
Пример 4.6.41. Использование функций is_numeric() и is_scalar():
$a = 0;
$b = "0";
$is_na = is_numeric($a); // $is_na получит значение true
$is_nb = is_numeric($b); // $is_nb получит значение false
$is_sa = is_scalar($a); // $is_sa получит значение true
$is_sb = is_scalar($b); // $is_sb получит значение true
…
$c = array(1, 2, 3);
$is_nc = is_numeric($c); // $is_nc получит значение false
$is_sc = is_numeric($c); // $is_sc получит значение false
Иногда требуется явно установить тип переменной (например, преобразовать строку в целое число). Это действие можно выполнить с помощью функции
settype(переменная, тип),
где тип может иметь одно из следующих значений: "array", "object", "integer", "double"("float"), "string", "boolean", или "null". Если преобразование выполнено успешно, функция возвращает значение true, в противном случае – значение false.
Пример 4.6.42. Использование функции settype():
$x_coord = "12"; // $x_coord определена как строка
// Преобразование $x_coord в целое число
settype($x_coord, integer);
Проверить, существует ли переменная с указанным именем можно с помощью функции
isset(переменная),
которая возвращает true, если указанная переменная существует и false – в противном случае.
Пример 4.6.43. Использование функции isset():
$a = 45; // Переменная $a определена
…
$is_a = isset($a); // $is_a получит значение true
$is_b = isset($b); // $is_b получит значение false,
// если $b ранее не встречалась
// в левой части оператора присваивания