数据类型

存在用于不同目的的不同数据类型。PHP 没有明确的类型定义,但变量的类型取决于分配的值的类型,或者由其转换为的类型。这是关于类型的简要概述,有关详细的文档和示例,请参阅 PHP 类型主题

PHP 中有以下数据类型:null,boolean,integer,float,string,object,resource 和 array。

空值

Null 可以分配给任何变量。它代表一个没有价值的变量。

$foo = null;

这使变量无效,如果调用它的值将是未定义的或无效的。变量从内存中清除并由垃圾收集器删除。

布尔

这是最简单的类型,只有两个可能的值。

$foo = true;
$bar = false;

布尔值可用于控制代码流。

$foo = true;

if ($foo) {
    echo "true";
} else {
    echo "false";
}

整数

整数是正数或负数。它可以与任何数字基础一起使用。整数的大小取决于平台。PHP 不支持无符号整数。

$foo = -3;  // negative
$foo = 0;   // zero (can also be null or false (as boolean)
$foo = 123; // positive decimal
$bar = 0123; // octal = 83 decimal
$bar = 0xAB; // hexadecimal = 171 decimal
$bar = 0b1010; // binary = 10 decimal
var_dump(0123, 0xAB, 0b1010); // output: int(83) int(171) int(10)

浮动

浮点数,双精度或简称为浮动是十进制数。

$foo = 1.23;
$foo = 10.0;
$bar = -INF;
$bar = NAN;

排列

数组就像一个值列表。最简单的数组形式由整数索引,并由索引排序,第一个元素位于索引 0。

$foo = array(1, 2, 3); // An array of integers
$bar = ["A", true, 123 => 5]; // Short array syntax, PHP 5.4+

echo $bar[0];    // Returns "A"
echo $bar[1];    // Returns true
echo $bar[123];  // Returns 5
echo $bar[1234]; // Returns null

数组还可以将除整数索引之外的键与值相关联。在 PHP 中,所有数组都是幕后的关联数组,但是当我们明确地引用关联数组时,我们通常意味着包含一个或多个不是整数的键。

$array = array();
$array["foo"] = "bar";
$array["baz"] = "quux";
$array[42] = "hello";
echo $array["foo"]; // Outputs "bar"
echo $array["bar"]; // Outputs "quux"
echo $array[42]; // Outputs "hello"

字符串

字符串就像一个字符数组。

$foo = "bar";

像数组一样,可以索引字符串以返回其各自的字符:

$foo = "bar";
echo $foo[0]; // Prints 'b', the first character of the string in $foo.

宾语

对象是类的实例。可以使用 -> 运算符访问其变量和方法。

$foo = new stdClass(); // create new object of class stdClass, which a predefined, empty class
$foo->bar = "baz";
echo $foo->bar; // Outputs "baz"
// Or we can cast an array to an object:
$quux = (object) ["foo" => "bar"];
echo $quux->foo; // This outputs "bar".

资源

资源变量包含打开文件,数据库连接,流,图像画布区域等的特殊句柄(如手册中所述 )。

$fp = fopen('file.ext', 'r'); // fopen() is the function to open a file on disk as a resource.
var_dump($fp); // output: resource(2) of type (stream)

要将变量的类型作为字符串,请使用 gettype() 函数:

echo gettype(1); // outputs "integer"
echo gettype(true); // "boolean"