Введение

PHP поддерживает восемь простых типов.

Четыре скалярных типа:

Два смешанных типа:

И, наконец, два специальных типа:

Для удобства понимания в этом руководстве используется также несколько псевдотипов:

  • mixed
  • number
  • callback (он же callable)
  • array|object
  • void

И псевдопеременная $....

Вы также можете найти несколько упоминаний типа двойной точности (double). Рассматривайте его как число с плавающей точкой, два имени существуют только по историческим причинам.

Как правило, программист не устанавливает тип переменной; обычно это делает PHP во время выполнения программы в зависимости от контекста, в котором используется переменная.

Замечание: Если вы желаете проверить тип и значение определённого выражения, используйте var_dump().

Если же вам для отладки необходимо просто удобочитаемое представление типа, используйте gettype(). Чтобы проверить на определенный тип, не используйте gettype(), применяйте для этого is_type функции. Вот несколько примеров:

<?php
$a_bool 
TRUE;   // логический
$a_str  "foo";  // строковый
$a_str2 'foo';  // строковый
$an_int 12;     // целочисленный

echo gettype($a_bool); // выводит: boolean
echo gettype($a_str);  // выводит: string

// Если это целое, увеличить на четыре
if (is_int($an_int)) {
    
$an_int += 4;
}

// Если $a_bool - это строка, вывести ее
// (ничего не выводит)
if (is_string($a_bool)) {
    echo 
"Строка: $a_bool";
}
?>

Если вы хотите принудительно изменить тип переменной, вы можете либо привести переменную, либо использовать функцию settype().

Обратите внимание, что переменная, в зависимости от ее типа в данный момент, в определённых ситуациях может иметь разные значения. Более подробную информацию смотрите в разделе Манипуляции с типами. Также вам, возможно, будет интересно посмотреть таблицы сравнения типов, поскольку в них приведены примеры различных сравнений, связанных с типами.

Коментарии

No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class 
testClass {
   
    public function 
__invole() { }
   
    public static function 
testStaticMethod() { }
   
    public function 
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 'testFunc';
$c2 = ['testClass''testStaticMethod'];
$c3 = [$o'testMethod'];
$c4 $lambda;
$c5 $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
2020-08-01 15:33:37
http://php5.kiev.ua/manual/ru/language.types.intro.html

    Поддержать сайт на родительском проекте КГБ