PHP字符串类型转化的例子

来源:芽雨快跑  时间: 2008-03-28 13:01:35  浏览: 11064 次  评论: 1 篇  
Tags : PHP 类型  

以下是代码片段:
if('dgfdg' == 0)
   echo 'Yes';
else
   echo 'No';
?>

  上面的程序会输出什么?这个例子是从其他blog上看见的,时间长了记不清是那个blog了。这个blog上说,如果答不出来说明基础知识还不够。偶很惭愧,觉得自己的回答没有底气。于是实践了一下。

  发现这是个PHP类型转换的例子,字符串与数字同时操作的时候,字符串会转化为整型,看下面的例子

以下是引用片段:
[root@login yayu]# php -r "if('gfd' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes
[root@login yayu]# php -r "if('gfd544' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes
[root@login yayu]# php -r "if('56gfd544' == 0) echo 'Yes'; else echo 'No'; echo \"\n\";"
No
[root@login yayu]# php -r "if('5gfd544' == 5) echo 'Yes'; else echo 'No'; echo \"\n\";"
Yes

  再看一下,字符串是如何转化为整型的:

以下是引用片段:
[root@login shengting]# php -r "echo (int) 10; echo \"\n\";"
10
[root@login shengting]# php -r "echo (int) '10gdfgfd'; echo \"\n\";"
10
[root@login shengting]# php -r "echo (int) 'gdfgfd'; echo \"\n\";"
0
[root@login shengting]# php -r "echo (int) 'gdfgfd10'; echo \"\n\";"
0

  从上面可以看出,转换的时候和第一个字符有很大关系。纯字母会直接转换为0,字母开头的字符串也会转换为0,只有以数字开头才会转换为该字符串前几个数字,此时有字母在后则完全截断了。

  下面是手册上的例子:

以下是代码片段:
$foo "10.5";                // $foo is float (11.5)
$foo "-1.3e3";              
// $foo is float (-1299)
$foo "bob-1.3e3";           
// $foo is integer (1)
$foo "bob3";                
// $foo is integer (1)
$foo "10 Small Pigs";       
// $foo is integer (11)
$foo "10.2 Little Piggies"
// $foo is float (14.2)
$foo "10.0 pigs " 1;          
// $foo is float (11)
$foo "10.0 pigs " 1.0;        
// $foo is float (11)
?>

朋友的回复:
呢称:ilsanbao  时间: 2008-04-02 16:48:01
以前也遇见过这情况自己也没往深研究!学习了
要不您也来写一写?
© 2004 - 2018 芽雨快跑 - 本页面所有内容,未经芽雨许可,欢迎转载,请注明出处

京ICP备09017802号