论坛积分策略 论坛VIP区开放申请 我爱电脑万人签名活动 原声大碟520欢迎你 广告位招租
发新话题
打印

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

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

变量类型变化(juggling) 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站. s5 |$ ~3 l( c) ~1 V# G

. h( [4 a4 [  V$ f% E6 `5 Owww.520diannao.com打造最好的电脑自学交流论坛% m3 \  {8 ~' e$ Y0 I* E' b  `7 I
PHP不需要(或者说不支持)在声名变量明确他的变量类型;一个变量的类型是由这个变量被使用的前后关系来决定的,也就是说,如果你给一个变量var赋了 一个字符串的值,var就变成了字符串变量。如果你再将一个整数赋值给var,他又变成了一个整数型变量。 我爱电脑技术论坛- u1 V' b, l; G# ~8 \

8 E8 V* [: B: c0 Y, Y0 [3 B我爱电脑技术论坛7 w' n. n& U; y: Q, B$ z  b( q
一个PHP自动转化变量类型的例子是加法的操作符’+’。如果任何一个操作数都是双精度数,那么所有的操作数被当作双精度数求值,并且结果也是双精度数。 否则,操作数将被认为是整数,结果也将会是整数。注意这并不影响每个操作数本身的变量类型,唯一的变化就是操作数在计算的过程中被如何处理。
- e5 C7 D6 C0 \& Z. fwww.520diannao.com
/ E0 P5 W- ?5 [+ q我爱电脑技术论坛打造最好的电脑自学交流论坛! M, F' R/ e; M& p6 f7 J9 }! M
我爱电脑技术论坛8 o! I; p% j5 K' ~; j" S) t* k2 r
$foo  =  "0";  //  $foo  是一个字符串  ,值是“0”(ASCII  48)  我爱电脑技术社区--打造最好的电脑技术自学交流平台3 M( p4 u. u# \! [' K* g8 h7 I

+ e$ r+ D; d& n+ p2 p! W" q我爱电脑技术社区--打造最好的电脑技术自学交流平台$foo++;  //  $foo  是一个字符串,值是“1”(ASCII  49)  我爱电脑技术论坛' v, ^; K. s; A+ O2 q8 ]$ ], G2 e

$ u7 ~, I$ B. x! V! |打造最好的电脑自学交流论坛$foo  +=  1;  //  $foo  现在是一个整数(2)了  
2 Y: c7 D6 H8 j( w5 e$ i3 Q' u$ a3 lwww.520diannao.comwww.520diannao.com' L# @' a! J. s" x
$foo  =  $foo  +  1.3;  //  $foo  现在是一个双精度数(3.3)了  5 I( q2 Y# i( J% B+ ]' E' x% y% l

# O5 ?6 i- k  h, V' r4 f; Q2 p我爱电脑技术社区--打造最好的电脑技术自学交流平台$foo  =  5  +  "10  Little  Piggies";  //  $foo  是一个整数  (15)  
/ H$ i) Y3 h& ?- Z- i8 o# B/ h9 _; ~打造最好的电脑自学交流论坛% Q* M, i/ @/ e0 T
$foo  =  5  +  "10  Small  Pigs";  //  $foo  是一个整数  (15)我爱电脑技术社区--打造最好的电脑技术自学交流平台0 z8 W3 n3 C8 t( r' f: y) K+ C
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站; i4 s$ R6 T$ ?, @
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站5 n6 h2 A! k* y# ^2 J7 _$ F& T9 ]0 \
电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站  K/ B+ E8 K3 z) s' O; U
如果你觉得上面例子中最后两个表达式看起来有点奇怪的话,请看 “字符串的转化”部分。
! z% ~# G4 w5 P# O7 X3 x我爱电脑技术社区--打造最好的电脑技术自学交流平台我爱电脑技术社区--打造最好的电脑技术自学交流平台# E2 Q  @. T2 T7 f# q. N8 o6 f% V
我爱电脑技术论坛: _) ^$ j- J* n3 I3 X) C5 {
如果你希望强制一个变量被当作某种固定的类型来计算,请看 “类型强制(casting)” 一节。如果你希望转变一个变量的类型,请看函数“settype()”的说明。 打造最好的电脑自学交流论坛2 i6 X* [! X$ i: @2 S# ]( b
  L& k  @' `5 ^: m3 `& E

, `, M: q  J& q, k5 }. `3 [  s# D我爱电脑技术社区--打造最好的电脑技术自学交流平台确定一个变量的类型 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站" i* X  U0 E6 u1 @% S' E

" V, u" k9 c6 y# E. ?- d! E* awww.520diannao.com我爱电脑技术论坛: o; ?/ u9 h# Y0 j; T4 A# d' {- `" o
因为PHP自己决定变量的类型并且一般按照需要转化他们,一个特定的变量的类型不是在任何时间都非常明显。PHP包括一些函数可以找出这个变量的类型。这 些函数是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object(). 我爱电脑技术社区--打造最好的电脑技术自学交流平台9 ]. Q3 T4 q5 J' F, p; d
打造最好的电脑自学交流论坛9 E( _0 B/ X# F3 }3 r  r

! j& F8 O! G  v+ L( Jwww.520diannao.com类型强制(type casting)
/ T( ?. u+ e4 {$ c  E5 l5 L% I" e电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站& l: j% \$ y8 d5 b( f1 R3 X
我爱电脑技术论坛2 [0 l& G2 E1 V2 k9 C* M
在PHP中类型强制同在C语言中大抵相似:将需要的类型的种类写在要强制的变量的前面的圆括号中。 www.520diannao.com3 l# w6 {( Z: B6 g+ R0 L

2 `7 Q& Q4 _) Z/ p! g; [: |" o1 d+ B我爱电脑技术社区--打造最好的电脑技术自学交流平台
3 @, E9 h, M; g" }8 L我爱电脑技术论坛
; X3 h9 L7 E$ M! r0 z$ Y我爱电脑技术论坛$foo  =  10;  //  $foo  是一个整数  
9 ?7 R* ]3 D( n0 o& z6 m电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
' v' d1 r1 l1 w- Y" |www.520diannao.com$bar  =  (double)  $foo;  //  $bar  是一个双精度数
+ O. l9 Z8 c' S# F2 `7 }0 d我爱电脑技术论坛
/ f- ~+ J# i0 K. n6 }电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站我爱电脑技术社区--打造最好的电脑技术自学交流平台% g; _$ G0 f+ C0 Y, ~: E, m

1 M, D0 l. L% ^- dwww.520diannao.com以下的强制方式是允许的:
' J% ?3 x' ^1 H% ]5 V我爱电脑技术论坛# _/ N+ R/ K% F- I; ?8 U9 s

; e2 r4 u5 T4 s(int), (integer) – 强制成整数 我爱电脑技术社区--打造最好的电脑技术自学交流平台; @8 n/ `7 F7 j1 ~' i
我爱电脑技术论坛4 n! Q. D! j: `1 s

; x6 i2 s( u9 n& J(real), (double), (float) – 强制成双精度数 9 ^( p# W7 Z% Z, W# [, G* L& c

8 r! K* Z& U6 X1 z" @) N我爱电脑技术社区--打造最好的电脑技术自学交流平台
9 L' g3 Z( _8 C+ }9 qwww.520diannao.com(string) – 强制成字符串
; ]+ |- q5 C9 ?3 }. p1 d( ~7 Awww.520diannao.comwww.520diannao.com' X/ W, s9 z9 c; v( A6 U
打造最好的电脑自学交流论坛) j; h  o& ~7 ?7 |+ H* X* w
(array) – 强制成数组 打造最好的电脑自学交流论坛+ M& b0 b& c, u7 V8 D) e0 r) U2 T
( J1 `/ F% V# l. x

8 a: ?/ ]# }) c9 D( C5 |1 Y+ }打造最好的电脑自学交流论坛(object) – 强制成对象

TOP

注意在圆括号中允许制表符(tabs)和空格(spaces) ,因此下面的语句是等价的: & o' r( E8 r4 S8 {  V9 w
我爱电脑技术论坛, P. A. k- z. y$ X1 h2 l. [- Q/ V

* g4 v0 M& M6 Q$foo = (int) $bar; 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站/ _- A. Y7 t/ a" w- v
* T( I4 C8 e7 U, a. L3 C: @6 k

! K! l4 e/ x1 n) m电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站$foo = ( int ) $bar; 我爱电脑技术论坛4 f* w9 V# q2 k3 p

% V- A8 d% X* \我爱电脑技术社区--打造最好的电脑技术自学交流平台我爱电脑技术社区--打造最好的电脑技术自学交流平台4 y) I0 W0 r2 J
字符串转化 打造最好的电脑自学交流论坛/ F# _$ d8 I; s

8 Z- A5 n1 N" ~4 W) Y1 E电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
4 u4 @' {! y+ h# c7 R( o2 U) r" I$ S电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站当一个字符串被当作数字型的值来计算时,他的结果和类型如下面所述的决定。
; b7 T( S" A0 i! X( J
. s! w% U* u) }! o打造最好的电脑自学交流论坛/ P0 n) u) D, I0 E$ K
如果这个字符串含有字符’.’,’e’,或者’E’,则被当作双精度类型变量来处理,否则当作是整数。
6 R+ j7 r6 ~6 J% p7 k6 t$ jwww.520diannao.com我爱电脑技术论坛$ G1 D0 T! q4 h2 r

+ I. g( [9 A# O3 m) T/ G8 L* f* Qwww.520diannao.com这个字符串的值由词首部分决定。如果这个字符串以任何有效的数字的数据开始,那么这个数字数据就是这个字符串参加运算的值。否则,值为零(zero)。有 效的数字数据是遵循下面的这些标记的,跟随在一个或多个数字后面(可以包含小数点),跟随在一个可选的指数后面。指数是由一个或多个数字跟在’e’或 ’E’后面构成的。 www.520diannao.com' K) H# S% ~& c( @& i- g

! }7 {9 L. \% V  s电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站
  `: H4 Z9 F) a1 v) ~; D我爱电脑技术社区--打造最好的电脑技术自学交流平台打造最好的电脑自学交流论坛; q" a0 S) X* t/ F6 \6 r( j3 T4 P! H
$foo  =  1  +  "10.5";  //  $foo  是双精度数  (11.5)  6 F: T" j! k  W! T( }

+ x) Z  h$ v$ V! ~" Q0 X我爱电脑技术社区--打造最好的电脑技术自学交流平台$foo  =  1  +  "-1.3e3";  //  $foo  是双精度数(-1299)  
9 L7 p! {: O+ _# _6 `& w3 J我爱电脑技术社区--打造最好的电脑技术自学交流平台
; W% y8 k! B( ]8 m# Y我爱电脑技术论坛$foo  =  1  +  "bob-1.3e3";  //  $foo  是整数  (1)  
4 e  @7 x5 W% k% U电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站我爱电脑技术社区--打造最好的电脑技术自学交流平台9 x( I8 n: V' m$ L" z) r
$foo  =  1  +  "bob3";  //  $foo  是整数  (1)  我爱电脑技术论坛1 D6 @5 p; Y5 w

% F0 N$ J! Y2 o/ J/ a- n$ G! K6 s我爱电脑技术社区--打造最好的电脑技术自学交流平台$foo  =  1  +  "10  Small  Pigs";  //  $foo  是整数  (11)
" `, s" ]# @4 awww.520diannao.com我爱电脑技术论坛3 x' f( X7 w5 r/ d! t8 ?/ u1 P: h
$foo  =  1  +  "10  Little  Piggies";  //  $foo  是整数  (11);  
( N* q! R/ C2 D0 \www.520diannao.com
- X/ [/ X! D, i& X' S: b9 Swww.520diannao.com//  这个字符串包括字符'e'www.520diannao.com* F5 @$ c! o" g" R+ I
  b" {7 j7 n0 ~/ \3 A' ^) i& e
www.520diannao.com( H' @' s$ u: b# [- p

- q5 M. I% I+ i# Z2 I获取更多信息,请参考Unix手册关于strtod(3)的部分。

TOP

发新话题