类型转换的判别


类型转换的判别

PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如果把一个字符串值赋给变量 varvar 就成了一个字符串。如果又把一个整型值赋给 var,那它就成了一个整数。

PHP 的自动类型转换的一个例子是加号“+”。如果任何一个操作数是浮点数,则所有的操作数都被当成浮点数,结果也是浮点数。否则操作数会被解释为整数,结果也是整数。注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

<?php
$foo 
"0";  // $foo 是字符串 (ASCII 48)
$foo += 2;   // $foo 现在是一个整数 (2)
$foo $foo 1.3;  // $foo 现在是一个浮点数 (3.3)
$foo "10 Little Piggies"// $foo 是整数 (15)
$foo "10 Small Pigs";     // $foo 是整数 (15)
?>

如果上面两个例子看上去古怪的话,参见字符串转换为数值

如果要强制将一个变量当作某种类型来求值,参见类型强制转换一节。如果要改变一个变量的类型,参见 settype()

如果想要测试本节中任何例子的话,可以用 var_dump() 函数。

Note:

自动转换为 数组 的行为目前没有定义。

Also, because PHP supports indexing into strings via offsets using the same syntax as array indexing, the following example holds true for all PHP versions:

<?php
$a    
'car'// $a is a string
$a[0] = 'b';   // $a is still a string
echo $a;       // bar
?>

请参阅访问和修改字符串中的字符一节以获取更多信息。

类型强制转换

PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。

<?php
$foo 
10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>

允许的强制转换有:

  • (int), (integer) - 转换为 整型(integer)
  • (bool), (boolean) - 转换为 布尔型(boolean)
  • (float), (double), (real) - 转换为 浮点型(float)
  • (string) - 转换为 字符串(string)
  • (binary) - 转换为二进制 字符串(string) (PHP 6)
  • (array) - 转换为 数组(array)
  • (object) - 转换为 对象(object)
  • (unset) - 转换为 NULL (PHP 5)

(binary) 转换会在结果前面加上前缀'b',PHP 5.2.1 新增。

注意在括号内允许有空格和制表符,所以下面两个例子功能相同:

<?php
$foo 
= (int) $bar;
$foo = ( int ) $bar;
?>

字符串(string)文字和变量转换为二进制 字符串(string)

<?php
$binary 
= (binary)$string;
$binary b"binary string";
?>

Note:

可以将变量放置在双引号中的方式来代替将变量转换成 字符串(string)s:

<?php
$foo 
10;            // $foo 是一个整数
$str "$foo";        // $str 是一个字符串
$fst = (string) $foo// $fst 也是一个字符串

// 输出 "they are the same"
if ($fst === $str) {
    echo 
"they are the same";
}
?>

有时在类型之间强制转换时确切地会发生什么可能不是很明显。更多信息见如下小节:


«  本文档中使用的伪类型
» 变量
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 感悟人生经典的话,我整整读了5遍,太透彻了! 2015工商所半年工作总结 夜雨感怀 《我们要好好活》作文3000字 初中初一作文750字:值得珍惜的那些爱 形容春天的成语:春暖花香:形容春天美丽的景色 乡镇水务站一季度工作总结 申报先进工作者个人综合材料 少先队辅导员事迹材料:珍爱学生 让学生健康成长 蝶醉 国庆节感恩祝福短信 经典抒情散文精选 我抗议!!作文500字 暮秋,小语 心内科护士工作总结 小学二年级作文450字:推车 毕淑敏:年龄要有雅量 舌头是个美食家 三年级记事作文 心底的你,终究会忘记 办理劳动合同流程 6月份社区关工委工作规划 一天中的美景 2015年新班主任工作计划 法院学习七一讲话心得体会 《敕勒歌》《静默草原》同步练习1 一个下着大雨的晚上作文600字 读致青年教师心得体会 痛着微笑 家遇小贼 “学”吃记 题招隐寺 鸡汤有毒 我愿为贤650字 最令人感动的一件小事 同同的妈妈到我家里来了作文 关于描写寒冷的诗句大全 参观电视塔550字 民政系统个人述职述廉报告 忧伤 敬爱的班主任老师700字 《最后一声“对不起”,不哭就不要给我说爱情二字,9零后必看》 情侣必去的国内十大浪漫圣地 学习科学发展观后的心得体会 我给妈妈洗次脚作文300字 学校学生饮食放心工程工作方案 【冒险号】漂游巨人岛(上) 2015关于学习李林森同志先进事迹活动情况的汇报 市财政局省级文明单位创建申报材料 入党呈请报告

Copyright © 2016 phpStudy |