php变量与数据类型,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) 字符串

例如,代码如下:

$str='a string';

$num=15;

$numstr='123.3';

echogettype($str),'
';

echogettype($num),'
';

echogettype($numstr),'
';

$numstr=(float)$numstr;

echogettype($numstr);

?>

输出结果为:

string

integer

string

double

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

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

functionfunctionname(parameters){

functionbody

}

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

functiontaxedprice($price,$taxrate){

return$price*(1+$taxrate);

}

echotaxedprice(100, 0.03);

?>

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

functionswap1($x,$y){

$t=$x;$x=$y;$y=$t;

}

functionswap2(&$x,&$y){

$t=$x;$x=$y;$y=$t;

}

$a=3;$b=5;

swap1($a,$b);

printf("a is %d, b is %d 
",$a,$b);

swap2($a,$b);

printf("a is %d, b is %d 
",$a,$b);

?>

输出结果:

a is 3, b is 5

a is 5, b is 3

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

functiontaxedprice($price,$taxrate=0.03){

return$price*(1+$taxrate);

}

echotaxedprice(100);

?>

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

$taxrate=0.03;//global

functionchange1() {

$taxrate+=1;

}

functionchange2() {

global$taxrate;

$taxrate+=1;

}

change1();

echo$taxrate,'
';

change2();

echo$taxrate,'
';

?>

输出的结果是:0.03 ,1.03

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

变量的变量

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

$r="hello";

$$r="i am hello";

echo$hello;

?>

//输出结果为: i am hello

流程控制语句

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

(责任编辑:admin)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值