欢迎来到天天文库
浏览记录
ID:8979866
大小:36.77 KB
页数:4页
时间:2018-04-13
《php培训教程php点运算符(.)与数据类型转换的深入探讨》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、http://www.lampbrother.net PHP培训教程PHP点运算符(.)与数据类型转换的深入探讨如果估计没错,在PHP语言中,使用最多的运算符号当数点运算符号“.”,使用最多的语句当数“echo”。不难理解,PHP的目标就是生成超文本脚本,而超文本脚本就是由字符串组成的,所以PHP处理最多的数据当是字符串,因此连接字符串的点运算符和输出字符串的语句“echo”就被经常用到。 最常用的不一定是最熟悉的。当我们敲击echo“....“;语句输出运算结果的时候,有谁敢说自己已经对字符串、点符号了如指掌
2、、运用自如了呢? 比如,语句echo’100’;和echo100;输出的html代码结果都是100,他们有什么不同? 再比如,语句echo100.200;和echo100[空格].[空格]200;输出结果一样吗?为什么? …… 1,了解PHP是一门“弱类型”的语言 每门计算机语言(我知道的将近20门语言中),都是有数据类型的,PHP概莫能外。“弱类型”的语言不是说该语言没有数据类型,而是说它弱化或不强调数据类型,具体的说,就是变量在使用前不必声明数据类型,类型根据所赋值的类型来决定,同时也定义了变量本身
3、。但PHP的函数和各种操作符(运算符)又是有变量和操作数类型要求的。所以,不可避免的,存在一个数据类型的自动转换问题。强类型的语言,比如C、C++、Java、C#,不同类型的数据是不允许参与混合运算的,如果需要,必需通过一些方法(比如函数、类的方法)进行类型转换。但PHP是允许不同类型的数据进行混合运算的(类似VbScript),PHP解释引擎自动做了类型转换的工作。 2,了解echo的操作数 echo实际上不是一个函数,而是一个语言结构,所以它可以用成echo(’...’),也可以用成echo’...’。e
4、cho的操作数类型应该是字符串型的。 参考PHP手册对echo的说明: 语法:echo(strings); 参数strings必需。 描述:一个或多个要发送到输出的字符串。 小知识1:注意echo和print函数的区别,比如: echo“123“.print(“abc“);//语法正确,但输出不是123abc,而是abc1231 //原因是首先执行print()函数输出abc,再连接“123“和函数的返回值1http://www.lampbrother.net print“abc“.echo(’o
5、oo’);//echo(’ooo’)会导致Parseerror:syntaxerror 小知识2:echo的简化语法〈?=’...’?〉 小知识3:echo()比print()函数快一点点。 3,了解点运算符的操作数 点运算符的操作数是字符串strings。 语法:strings.strings 4,点运算符(.)的深入了解 了解了前边的1、2、3,是不是就完全能正确应用字符串、echo、点运算符了呢?不尽然。熟悉语法和实际应用往往还是有距离的。再加上自动数据类型转换,导致了一定的复杂性。 示例1
6、: 最一般的情况,输出字符串,比如echo’abc’.“123“,结果是abc123,没什么好解释的。 示例2: echotrue; 输出结果是1。true是PHP内置布尔常量,输出前被转换为字符串“1“。 echofalse; 输出结果是空。false也是PHP内置布尔常量,输出前被转换为空字符串。 示例3: echo0==“ABC“; 输出结果是1。0==“ABC“中,字符串“ABC“首先被转换为数值型(字符串转换为数值,还有一个规则,有机会再讲),为0,再和0比较,结果为true,再执行e
7、chotrue,为1。默默地进行了2次类型转换。 再注意,echo’ABC’==0;结果还是1。注意不是把0转换为字符串“0“再和字符串’ABC’比较从而得到false。呵呵,很诡异吗? 类似地有另一个题目: if(’ABC’==0)http://www.lampbrother.net echo’yes’; else echo’no’; 知道到底输出yes还是no了吗? 示例4:再来个更诡异的。 echo100.“ABC“;//注意!点符号两边都有空格 这句输出100ABC,因为100被转化为
8、“100“了。 echo100.“ABC“;//注意!点符号两边没有空格,是连写 但这句报告语法错误!为什么呀?因为PHP在这里把点符号当小数点对待了,“100.“ABC“”当然不是个正确的数字了。 echo100.“ABC“; 只有点符号右边有空格,语法错误。原因如上。 echo100.“ABC“; 只有点符号左边有空格,语法正确,输出100ABC。 类似
此文档下载收益归作者所有