设为首页收藏本站language 语言切换
查看: 1399|回复: 0
收起左侧

新手学堂:PHP服务器变量设置的方法介绍

[复制链接]
发表于 2010-2-24 13:26:18 | 显示全部楼层 |阅读模式
<p >变量类型变化(juggling)  <p ><p >HP不需要(或者说不支持)在声名变量明确他的变量类型;一个变量的类型是由这个变量被使用的前后关系来决定的,也就是说,如果你给一个变量var赋了 一个字符串的值,var就变成了字符串变量。如果你再将一个整数赋值给var,他又变成了一个整数型变量。  <p ><p >一个PHP自动转化变量类型的例子是加法的操作符’+’。如果任何一个操作数都是双精度数,那么所有的操作数被当作双精度数求值,并且结果也是双精度数。 否则,操作数将被认为是整数,结果也将会是整数。注意这并不影响每个操作数本身的变量类型,唯一的变化就是操作数在计算的过程中被如何处理。  <p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>$foo  =  &quot;0&quot;;  //  $foo  是一个字符串  ,值是“0”(ASCII  48)  $foo++;  //  $foo  是一个字符串,值是“1”(ASCII  49)  $foo  +=  1;  //  $foo  现在是一个整数(2)了  $foo  =  $foo  +  1.3;  //  $foo  现在是一个双精度数(3.3)了  $foo  =  5  +  &quot;10  Little  Piggies&quot;;  //  $foo  是一个整数  (15)  $foo  =  5  +  &quot;10  Small  Pigs&quot;;  //  $foo  是一个整数  (15)</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >如果你觉得上面例子中最后两个表达式看起来有点奇怪的话,请看  “字符串的转化”部分。  <p ><p >如果你希望强制一个变量被当作某种固定的类型来计算,请看  “类型强制(casting)”  一节。如果你希望转变一个变量的类型,请看函数“settype()”的说明。  <p ><p >确定一个变量的类型  <p ><p >因为PHP自己决定变量的类型并且一般按照需要转化他们,一个特定的变量的类型不是在任何时间都非常明显。PHP包括一些函数可以找出这个变量的类型。这 些函数是gettype(),  is_long(),  is_double(),  is_string(),  is_array(),  和  is_object().  <p ><p >类型强制(type  casting)  <p ><p >在PHP中类型强制同在C语言中大抵相似:将需要的类型的种类写在要强制的变量的前面的圆括号中。  <p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>$foo  =  10;  //  $foo  是一个整数  $bar  =  (double)  $foo;  //  $bar  是一个双精度数</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >以下的强制方式是允许的:  <p ><p >(int),  (integer)  –  强制成整数  <p ><p >(real),  (double),  (float)  –  强制成双精度数  <p ><p >(string)  –  强制成字符串  <p ><p >(array)  –  强制成数组  <p ><p >(object)  –  强制成对象  <p ><p >注意在圆括号中允许制表符(tabs)和空格(spaces)  ,因此下面的语句是等价的:  <p ><p >$foo  =  (int)  $bar;  <p ><p >$foo  =  (  int  )  $bar;  <p ><p >字符串转化  <p ><p >当一个字符串被当作数字型的值来计算时,他的结果和类型如下面所述的决定。  <p ><p >如果这个字符串含有字符’.’,’e’,或者’E’,则被当作双精度类型变量来处理,否则当作是整数。  <p ><p >这个字符串的值由词首部分决定。如果这个字符串以任何有效的数字的数据开始,那么这个数字数据就是这个字符串参加运算的值。否则,值为零(zero)。有 效的数字数据是遵循下面的这些标记的,跟随在一个或多个数字后面(可以包含小数点),跟随在一个可选的指数后面。指数是由一个或多个数字跟在’e’或 ’E’后面构成的。  <p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>$foo  =  1  +  &quot;10.5&quot;;  //  $foo  是双精度数  (11.5)  $foo  =  1  +  &quot;-1.3e3&quot;;  //  $foo  是双精度数(-1299)  $foo  =  1  +  &quot;bob-1.3e3&quot;;  //  $foo  是整数  (1)  $foo  =  1  +  &quot;bob3&quot;;  //  $foo  是整数  (1)  $foo  =  1  +  &quot;10  Small  Pigs&quot;;  //  $foo  是整数  (11)$foo  =  1  +  &quot;10  Little  Piggies&quot;;  //  $foo  是整数  (11);  //  这个字符串包括字符'e'</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >获取更多信息,请参考Unix手册关于strtod(3)的部分。 <p >< align=right></P><p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-5 07:54 , Processed in 0.055319 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表