有不同用途的不同数据类型。PHP没有明确的类型定义,但变量的类型由分配的值的类型或强制转换的类型确定。这是有关类型的简要概述,有关详细的文档和示例,请参见PHP类型主题。
PHP中有以下数据类型:空,布尔值,整数,浮点数,字符串,对象,资源和数组。
空值可以分配给任何变量。它表示没有值的变量。
$foo = null;
这会使变量无效,并且其值将是未定义的或如果被调用则为无效。该变量将从内存中清除,并由垃圾回收器删除。
这是最简单的类型,只有两个可能的值。
$foo = true; $bar = false;
布尔值可用于控制代码流。
$foo = true; if ($foo) { echo "true"; } else { echo "false"; }
整数是一个正数或负数。它可以与任何数字基数一起使用。整数的大小取决于平台。PHP不支持无符号整数。
$foo = -3; // 负 $foo = 0; // 零(也可以为null或false(如布尔值) $foo = 123; // 正小数 $bar = 0123; // 八进制= 83十进制 $bar = 0xAB; // 十六进制= 171十进制 $bar = 0b1010; // 二进制= 10小数 var_dump(0123, 0xAB, 0b1010); // 输出:int(83)int(171)int(10)
浮点数,“双精度”或简称为“浮点数”是十进制数。
$foo = 1.23; $foo = 10.0; $bar = -INF; $bar = NAN;
数组就像一个值列表。数组的最简单形式由整数索引,并由索引排序,第一个元素位于索引0。
$foo = array(1, 2, 3); // 整数数组 $bar = ["A", true, 123 => 5]; // 短数组语法,PHP 5.4+ echo $bar[0]; // Returns "A" echo $bar[1]; // 返回true echo $bar[123]; // 返回5 echo $bar[1234]; // 返回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]; // 打印“ b”,即$foo中字符串的第一个字符。
对象是类的实例。->运算符可以访问其变量和方法。
$foo = new stdClass(); // 创建类stdClass的新对象,该对象为预定义的空类 $foo->bar = "baz"; echo $foo->bar; // Outputs "baz" // 或者我们可以将数组转换为对象: $quux = (object) ["foo" => "bar"]; echo $quux->foo; // This outputs "bar".
资源变量具有打开的文件,数据库连接,流,图像画布区域等的特殊句柄(如手册中所述)。
$fp = fopen('file.ext', 'r'); // fopen()是打开磁盘上的文件作为资源的功能。 var_dump($fp); // 输出:类型(流)的resource(2)
要将变量的类型作为字符串获取,请使用以下gettype()函数:
echo gettype(1); // outputs "integer" echo gettype(true); // "boolean"