Boolean转换为boolean时,以下值被认为是FALSE:布尔值FALSE本身整数值0(零)浮点值0.0(零)空字符串'',和字符String"0"Arraycontainingnoelements[]SpecialtypeNULL(includingunassignedvariables)SimpleXMLobjectgeneratedfromaemptytag所有其他值都被认为是TRUE(包括任何资源和NAN)。整数注意类型转换:如果给定的数字超出整数范围,它将被解释为浮点数。同样,如果运算结果超出整数范围,也会返回float。示例#232位系统上的整数溢出Example#3Integeroverflowon64-bitsystems浮点类型(也称为浮点数float、双精度数double或实数real)可以使用以下任何语法定义:浮点数的精度有限。floor((0.1+0.7)*10)通常会返回7而不是预期的8,因为结果的内部表示实际上类似于7.9999999999999991118...。所以永远不要相信一个浮点数的结果精确到最后一位,也永远不要比较两个浮点数是否相等。$a和$b都等于五位小数。Stringsinglequotesonlyescape\双引号常规使用双引号\n换行(ASCII字符集LF或0x0A(10))\r回车(ASCII字符集CR或0x0D(13))\t水平制表符(ASCII字符集HT)或0x09(9))\vVerticalTab(VTor0x0B(11)inASCIIcharacterset)(sincePHP5.2.5)\eEscape(ESCor0x1B(27)inASCIIcharacterset)(sincePHP5.4.0)\f换页符(ASCII字符集中的FF或0x0C(12))(自PHP5.2.5起)\\反斜杠\$美元符号\"双引号\\"\[0-7]{1,3}匹配正则表达式序列是以八进制表示的字符\x[0-9A-Fa-f]{1,2}匹配正则表达式序列是以八进制表示的字符以十六进制表示的字符双引号示例:getName()的返回值命名的var的值:{${$object->getName()}}";//有效,输出:I'dlikeanA&Wecho"I'dlikean{${beers::softdrink}}\n";//同样有效,输出:I'dlikeanAlexanderKeith'secho"I'dlikean{${beers::$ale}}\n";?>Heredocstructuredoesnotusedoublequotes双引号stringWarning注意结束标识符行Exceptpossibleasemicolon(;),不得包含其他字符。这意味着标识符不能缩进,分号前后也不能有任何空格或制表符。更重要的是,结束标识符前面必须有本地操作系统识别的换行符,例如UNIX和MacOSX系统中的n,结束分隔符(可能后面跟一个分号)也必须跟一个换行符。如果不遵守此规则导致结束标记不“干净”,则PHP将认为它不是结束标记并继续查找。如果在文件末尾之前没有找到正确的结束标识符,PHP将在最后一行产生一个解析错误。Heredocs结构不能用于初始化类属性。自PHP5.3起,此限制仅在heredoc包含变量时有效。foo。现在,我正在打印一些{$foo->bar[1]}。这应该打印一个大写的“A”:\x41EOT;这不是:foo(<<Nowdoc结构单引号字符串超出访问和修改的字符串下标长度将拉长字符串并用空格填充它。非整数类型的下标将被转换为整数。非法下标类型会产生E_NOTICE级别的错误。写入带有负数下标的字符串会产生E_NOTICE级别的错误,读取带有负数下标的字符串将返回空字符串。写入时仅使用赋值字符串的第一个字符。使用空字符串赋值会分配NULL字符。PHP字符串在内部是字节数组。因此,使用大括号访问或修改字符串对于多字节字符集来说是不安全的。此类操作应仅对具有单字节编码(例如ISO-8859-1)的字符串进行。注意:PHP5.4以后的字符串下标必须是整数或者可转换为整数的字符串,否则会发出警告。以前的下标,例如“foo”,会自动转换为0。PHP5.5添加了对使用[]或{}直接访问字符串原型中字符的支持。转换1.可以通过在值前面加上(string)或使用strval()函数将值转换为字符串。2.布尔值boolean的TRUE转换为string的“1”。Boolean的FALSE转换为""(空字符串)3.array数组总是转换为字符串"Array"4.object对象总是转换为字符串"Object"在PHP4、PHP5及以后,适当的时候可以使用__toString方法。5、资源resource总是会被转换成结构为“Resourceid#1”的字符串,其中1是PHP在运行时赋予资源的唯一值。6.NULL总是被转换成一个空字符串。字符串的开头决定了它的值。如果字符串以合法数值开头,则使用该数值。否则它的值为0(零)。ArrayPHP中的数组实际上是一个有序映射。映射是一种将值与键相关联的类型。这种类型在很多方面进行了优化,因此可以将其视为真正的数组,或列表(向量)、哈希表(它是map的一种实现)、字典、集合、堆栈、队列以及更多可能性。PHP数组可以同时包含整数和字符串键,因为PHP实际上并不区分索引数组和关联数组。keykey会有以下强制转换:1.包含合法整数值的字符串会被转换为整数。例如,键“8”实际上将存储为8。但是“08”不会被强制转换,因为它不是有效的十进制值。2.浮点数也会被转为整数,也就是说小数部分会四舍五入。比如键名8.7,实际会存储为8。3.布尔值也会被转为整数。即键名true实际会存为1,键名false实际存为0。4.null会转为空串,即键名null实际存为""。5.数组和对象不能作为键。坚持这样做会导致警告:非法偏移类型。Example#2类型强制和覆盖示例"a","1"=>"b",1.5=>"c",true=>"d",);var_dump($array);?>以上例程将输出:array(1){[1]=>string(1)"d"}Example#3Mixintegerandstringkeyname"bar","bar"=>"foo",100=>-100,-100=>100,);var_dump($array);?>上面的程序会输出:array(4){["foo"]=>string(3)"bar"["bar"]=>string(3)"foo"[100]=>int(-100)[-100]=>int(100)}示例#5只为某些单元指定键名"c","d",);var_dump($array);?>上面的例程将输出:数组(4){[0]=>字符串(1)“a”[1]=>字符串(1)“b”[6]=>字符串(1)“c”[7]=>字符串(1)"d"}将整数、浮点数、字符串、布尔值和资源类型转换成一个数组,你会得到一个只有一个元素的数组,下标为0,这个元素就是这个标量的值。换句话说,(array)$scalarValue与array($scalarValue)完全相同。如果将对象类型转换为数组,则结果是一个数组,其元素是对象的属性。键名将是成员变量名,但有一些例外:整数属性不可访问;私有变量以类名为前缀;受保护的变量以“*”为前缀。这些前缀前后都有NULL字符。这会导致一些不可预测的行为:上面的示例将有两个名为“AA”的键,但其中一个实际上是“0A0A”。将NULL转换为数组会生成一个空数组。Callback/Callable类型可调用类型提示,如is_callable(),如果值看起来像静态方法回调,将触发类的自动加载Example#2ExampleusingClosure上面例程会输出:246810文档中使用的伪类型和变量mixedmixed表示一个参数可以接受多个不同的(但不一定是所有)类型,例如gettype()接受所有PHP类型,str_replace()接受字符串和数组。numbernumber表示参数可以是整数或浮点数。在PHP5.4中引入可调用类型之前,本文档中使用了回调伪类型。两者具有完全相同的含义。array|objectarray|object表示参数可以是数组也可以是对象。voidvoid作为返回类型意味着函数的返回值是无用的。void作为参数列表意味着该函数不接受任何参数。...在函数原型中,$...表示等。当函数可以接受任意数量的参数时使用此变量名。Cast(int),(integer)-转换为整数integer(bool),(boolean)-转换为布尔类型boolean(float),(double),(real)-转换为浮点数float(string)-转换为字符串string(array)-转换为数组array(object)-转换为对象object(unset)-转换为NULL(PHP5)(binary)转换和b前缀转换支持是PHP5.2.1的新增功能。请注意,括号内允许使用空格和制表符,因此以下两个示例的功能相同:将字符串文字转换为变量对于二进制字符串:示例: