PHP 服务器变量设置的方法介绍
变量类型变化(juggling)
PHP 不需要(或者说不支持)在声名变量明确他的变量类型;一个变量的类型是由
这个变量被使用的前后关系来决定的,也就是说,如果你给一个变量 var
赋了 一个字符
串的值,var 就变成了字符串变量。如果你再将一个整数赋值给 var,他又变成了一个整数
型变量。
一个 PHP
’
自动转化变量类型的例子是加法的操作符 +’。如果任何一个操作数都是双
精度数,那么所有的操作数被当作双精度数求值,并且结果也是双精度数。否则,操作数
将被认为是整数,结果也将会是整数。注意这并不影响每个操作数本身的变量类型,唯一
的变化就是操作数在计算的过程中被如何处理。
$foo = "0"; // $foo
“
是一个字符串 ,值是 0”(ASCII 48)
$foo++; // $foo
“
是一个字符串,值是 1”(ASCII 49)
$foo += 1; // $foo 现在是一个整数(2)了
$foo = $foo + 1.3; // $foo 现在是一个双精度数(3.3)了
$foo = 5 + "10 Little Piggies"; // $foo 是一个整数 (15)
$foo = 5 + "10 Small Pigs"; // $foo 是一个整数 (15)
“
”
如果你觉得上面例子中最后两个表达式看起来有点奇怪的话,请看 字符串的转化
部分。
“
如果你希望强制一个变量被当作某种固定的类型来计算,请看 类型强制(casting)”
“
一节。如果你希望转变一个变量的类型,请看函数 settype()”的说明。
确定一个变量的类型
因为 PHP 自己决定变量的类型并且一般按照需要转化他们,一个特定的变量的类型
不是在任何时间都非常明显。PHP
包括一些函数可以找出这个变量的类型。这 些函数是
gettype(), is_long(), is_double(), is_string(), is_array(),
和 is_object().
类型强制(type casting)
在 PHP 中类型强制同在 C 语言中大抵相似:将需要的类型的种类写在要强制的变量
的前面的圆括号中。
$foo = 10; // $foo 是一个整数
$bar = (double) $foo; // $bar 是一个双精度数
以下的强制方式是允许的:
(int), (integer) – 强制成整数
(real), (double), (float) – 强制成双精度数
(string) – 强制成字符串
(array) – 强制成数组
(object) – 强制成对象
注意在圆括号中允许制表符(tabs)和空格(spaces) ,因此下面的语句是等价的:
$foo = (int) $bar;
$foo = ( int ) $bar;
字符串转化
当一个字符串被当作数字型的值来计算时,他的结果和类型如下面所述的决定。
’
如果这个字符串含有字符 .’,’e’,
’
或者 E’,则被当作双精度类型变量来处理,否则当
作是整数。
这个字符串的值由词首部分决定。如果这个字符串以任何有效的数字的数据开始,那