PHP Conference China 2020

Введение

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

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

Четыре смешанных типа:

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

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

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

Вы также можете найти несколько упоминаний типа двойной точности (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().

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

add a note add a note

User Contributed Notes 3 notes

up
-1
kuzawinski dot marcin_NOSPAM at gmail dot com
1 month ago
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"

?>
up
-12
zamanmonir71 at yahoo dot com
1 year ago
The  pseudo-type 'void' used for readability reasons at the beginning of a function prototype. It means its 'return type' must either omitted their return statement altogether, or used an empty return statement. However, NULL is not expected as a valid return value for a void function.
<?php
    
//This function has nothing to return

        
(void) unset ( mixed $var [, mixed $... ] )
?>
up
-15
champangeboy619 at gmail dot com
2 years ago
is_int() is used for integers.

And is_bool() for booleans.

is_boolean() wont work.
To Top