Примечание автора: операторы не изменяют тип переменной, но делает попытку приведения переменной и возвращает значение соответствующего типа.

  • $var = (int)$some_var, (integer)$some_var – явное приведение переменной $some_var к целочисленному типу
  • $var = (float)$some_var, (real)$some_var, (double)$some_var – явное приведение переменной $some_var к вещественному типу
  • $var = (array)$some_var – явное приведение переменной $some_var к массиву
  • $var = (string)$some_var – явное приведение переменной $some_var к массиву
  • $var = (bool)$some_var, (boolean)$some_var – явное приведение переменной $some_var логическому значению (true,false)
  • $var = (object)$some_var – явное приведение переменной $some_var к объекту

Новшества PHP 5:

  • (unset)$some_var – присвоение типа NULL, уничтожение переменной, освобождение памяти.

Новшества PHP 5.2.1:

  • (binary) $some_var – приведение переменной к бинарному представлению.

   Примеры использования:

Рассмотрим передачу id статьи через массив GET news.php?id=23

Вариант подготовки параметра для безопасной передачи в запрос к базе данных:

$news_id = (int)$_GET["id"];

Еще одной интересной функцией является abs, которую советую применять при фильтрации входных данных для заведомо неотрицательных величин, например уникального идентификатора статьи, который является по умолчанию числом уникальным, положительным, с auto increment:

  • abs($var)Принимаемые параметры: $var – переменная целого (или вещественного) типа. Возвращает абсолютное по модулю число: для всех отрицательных величин возвращается положительное, для всех положительных возвращается просто значение переменной

 

   Рассмотрим предыдущий пример в новом ракурсе:

Так как integer может быть как положительным, так и отрицательным целым числом, перепишем предыдущий пример с использованием функции abs:

Вариант подготовки параметра для безопасной передачи в запрос к базе данных:

$news_id = abs((int)$_GET["id"]);

Функции явного приведения данных.

  • (int) intval($var,[$base = 10]) - Принимаемые параметры: $var – переменная для приведения типов. Приводит переменную к целочисленному типу. Возвращает переменную, приведенную к целочисленному типу, в случае с массивом 0 если массив пуст, 1 – если есть элементы, в случае со строкой: если удаётся преобразовать к целому числу – то целое число, или 0 в обратном случае.

    $base = основание, десятичная система исчисления по умолчанию.

  • (float) floatval($var) - Принимаемые параметры: $var – переменная для приведения типов. Приводит переменную к вещественному типу. Возвращает переменную, приведенную к вещественному типу, в случае неудачи возвращает 0.
  • (bool) settype(&$var, string $type ) - Принимаемые параметры: $var – переменная для приведения типов, $type – к какому типу привести переменную:

    1. "boolean","bool" – приведение типа переменной к логическому значению (true, false),
    2. "integer","int" – приведение типа переменной к целому значению,
    3. "float","double" – приведение типа переменной к вещественному значению,
    4. "string" – приведение типа переменной к строковому значению,
    5. "array" – приведение к массиву,
    6. "object" – приведение типа переменной к объекту,
    7. "null" – приведение типа переменной к типу NULL (освобождение занимаемой памяти).

    Производит прямое приведение переменной к значению указанного типа. В случае удачи возвращает true, иначе – false.

    Общирный пример практического использования вышеописанных функций при программировании на языке PHP:

    Приведём пример безопасного запроса к базе данных с получением id новости из строки запроса:

    <?php
    $id             = isset($_GET["id"]) ? abs(intval($_GET["id"])) : 0;
    If(!empty($id)){
    	$q          = "SELECT `news_text` FROM `news` WHERE `news_id`=".$id;
    	$p          = mysql_query($q);
     	if($p && is_resource($p)){
    	list($text) = mysql_fetch_row($p);
    	echo $text;
    }
    }
    ?>
    

Больше информации о веб технологиях можно узнать из нашего перечня всех статей на сайте:

Добавить комментарий


Яндекс.Метрика