微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php 数据类型和变量

PHP是弱类型的,一个变量不需要预先声明,也不需要指定类型,PHP中变量是$加上变量名,PHP的变量是区分大小写的,例如上例中的 $my='my'.

PHP支持的变量类型包括:布尔型,整型,浮点型,字符串,数组和对象,前四种很常用,也和其他语言类似,不多做介绍,数组和对象后文具体介绍。 

PHP中有函数来检测对象的类型,它们是 getttype。gettype返回一个string,它的值可以是array,boolean,double,integer,object,resource,string 和 unkNow type. PHP支持显式的类型转换,语法和c类似。 

转换操作符,转换为 

(array) 数组 

(bool) (boolean) 布尔型 

(int) (integer) 整数 

(object) 对象 

(float),(double),(real) 浮点数 

(string) 字符串 

例如,代码如下:

  1. <?PHP  
  2. $str ='a string';  
  3. $num=15;  
  4. $numstr='123.3';  
  5. echo gettype($str),'<br/>';  
  6. echo gettype($num),'<br/>';  
  7. echo gettype($numstr),'<br/>';  
  8. $numstr=(float)$numstr;  
  9. echo gettype($numstr);  
  10. ?> 

输出结果为:

  1. string  
  2. integer  
  3. string  
  4. double 

还有函数可以用来判断一个变量是不是某种类型,例如 is_array(),is_bool()等等,用法都类似。

函数和变量作用域,PHP声明函数方法很简单,形式如下: 

  1. function functionname(parameters){  
  2. function body  

不需要指定返回类型,括号中也不需要指定变量类型,只要有变量名就可以,例代码如下:

  1. <?PHP  
  2. function taxedprice($price,$taxrate){  
  3. return $price*(1+$taxrate);  
  4. }  
  5. echo taxedprice(100, 0.03);  
  6. ?> 

认情况下,PHP是按值传递参数的,在函数内改变参数的值并不会改变函数外变量的值,但是PHP支持按引用传递,语法和c一致,&$paramname,例如,下面一个经典的例子: 

  1. <?PHP  
  2. function swap1($x,$y){  
  3. $t=$x;$x=$y;$y=$t;  
  4. }  
  5. function swap2(&$x,&$y){  
  6. $t=$x;$x=$y;$y=$t;  
  7. }  
  8. $a=3;$b=5;  
  9. swap1($a,$b);  
  10. printf(a is %d, b is %d <br/>,$a,$b);  
  11. swap2($a,$b);  
  12. ?> 

输出结果:

a is 3,b is 5 

a is 5,b is 3

PHP函数支持参数的认值,语法和c也是一样的,代码如下:

  1. <?PHP  
  2. function taxedprice($price,$taxrate=0.03){  
  3. return $price*(1+$taxrate);  
  4. }  
  5. echo taxedprice(100);  
  6. ?> 

下面介绍变量的作用域,PHP的变量作用域和c很类似,有局部变量,函数参数,全局变量,静态变量4种,局部变量就是在函数内声明的变量,函数参数是在函数首部声明的变量;不在函数中声明的变量是全局变量,全局变量可以在任何地方访问到,但是和c不同的是,如果在函数中要修改全局变量的值需要用global关键字显式指定它是全局变量,否则PHP就会声明一个同名的局部变量并且覆盖它。例如,代码如下:

  1. <?PHP  
  2. $taxrate=0.03; //global  
  3. function change1() {  
  4. $taxrate+=1;  
  5. }  
  6. function change2() {  
  7. global $taxrate;  
  8. $taxrate+=1;  
  9. }  
  10. change1();  
  11. echo $taxrate,'<br/>';  
  12. change2();  
  13. echo $taxrate,'<br/>';  
  14. ?> 

输出的结果是:0.03,1.03

PHP还有一种超级全局变量,超级全局变量是由PHP系统预定义的,主要用来访问与环境有关的信息,例如当前用户会话,用户操作环境和本地环境等,超级全局变量一个数组,例如$_server中存储了服务器相关的信息。$_get,$_post,$_files,$_cookie中分别存储了客户端采用get提交,和post的提交的信息,上传文件,cookie信息等。这些变量的使用都很简单,需要什么信息只需要查找

变量的变量

和c一类的静态语言不同,PHP的变量名本身可以是一个变量,这对于需要动态生成很多变量的时候是很便利的,代码如下:

  1. <?PHP  
  2. $r=hello;  
  3. $$r=i am hello;  
  4. echo $hello;  
  5. ?> 
  6. //输出结果为: i am hello 

流程控制语句

主要包括,if else,while,for,do while,switch. 这些和c语言都很像,基本是一致的,有些不同,PHP的 elseif是一个关键字,是连在一起的,而c语言是else if

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐