时间:2021-07-01 10:21:17 帮助过:15人阅读
Roses are =$color?>
3)、echo()函数 比 print() 函数快一点点。 接下来,需要熟悉一下点运算符的操作,这里以网友“张庆(网眼)”的例子示意: 示例1: 最一般的情况,输出字符串,比如 echo 'abc' . "123",结果是 abc123,没说明好解释的。 示例2: echo true; 输出结果是 1。true 是 PHP 内置布尔常量,输出前被转换为字符串"1"。 echo false; 输出结果是空。false 也是 PHP 内置布尔常量,输出前被转换为空字符串。 示例3: echo 0=="ABC"; 输出结果是 1。0=="ABC"中,字符串"ABC"首先被转换为数值型(字符串转换为数值,还有一个规则,有机会再讲),为0,再和 0 比较,结果为 true,再执行 echo true,为 1。默默地进行了 2 次类型转换。 再注意,echo 'ABC'==0; 结果还是 1。注意不是把 0 转换为字符串 "0" 再和字符串 'ABC' 比较从而得到 false。呵呵,很诡异吗? 类似地有另一个题目: if('ABC'==0) echo 'yes'; else echo 'no'; 知道到底输出 yes 还是 no 了吗? 示例4:再来个更诡异的。 echo 100 . "ABC"; // 注意!点符号两边都有空格 这句输出 100ABC,因为 100 被转化为"100"了。 echo 100."ABC"; // 注意!点符号两边没有空格,是连写 但这句报告语法错误!为什么呀?因为 PHP 在这里把点符号当小数点对待了,“100."ABC"” 当然不是个正确的数字了。 echo 100. "ABC"; 只有点符号右边有空格,语法错误。原因如上。 echo 100 ."ABC"; 只有点符号左边有空格,语法正确,输出 100ABC。 类似的: $a = 100; echo $a . 200; //点符号两边有空格 输出 100200。 $a = 100; echo $a.200; //点符号两边没有空格 语法错误。“$a.200”也不是一个合格的变量吧。 示例5: echo 100 + "ABC"; 输出结果是 100。注意不要认为这会产生语法错误,因为这里的“+”号是算数运算符,不是连接运算符的误写。"ABC"被转换为数字 0 了,加 100 后等于100,再转换为字符串"100"输出来。进行了2次类型转换。 echo 100 + "20" . 30; //点符号两边有空格 结果输出 12030。 echo 100 + "20" .30; //点符号左边有空格,右边无空格 语法错误。.30 被当作 double 类型的 0.30 了。与 100 + "20" 的结果"120"直接摆在一起,PHP 分辨不清,报错了。 还可以举出一些例子来。仔细体会,还是能找出类型转换规律的,PHP 其实并不诡异。http://www.bkjia.com/PHPjc/477788.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477788.htmlTechArticle题目如下: [php] ?php $a = 3; $b = 5; $c = $a $b ? 2:4; echo $d = $a$c; /*analysis why the result is 1*/ echo $d; echo gettype($d); echo var_dump($d); /*example 2*/ if(ABC==0)...