Home >php教程 >php手册 >php 数据类型和变量

php 数据类型和变量

WBOY
WBOYOriginal
2016-06-13 10:03:24929browse

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';
echo gettype($str),'
';
echo gettype($num),'
';
echo gettype($numstr),'
';
$numstr=(float)$numstr;
echo gettype($numstr);
?>

输出结果为:

string
integer
string
double

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

3. 函数和变量作用域
php声明函数的方法很简单,形式如下:
 代码如下:
function functionname(parameters){
function body
}

不需要指定返回类型,括号中也不需要指定变量类型,只要有变量名就可以。例如:
 代码如下:
function taxedprice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedprice(100, 0.03);
?>

默认情况下,php是按值传递参数的,在函数内改变参数的值并不会改变函数外变量的值,但是php也支持按引用传递,语法和c一致,&$paramname,例如,下面一个经典的例子:
 代码如下:
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$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也是一样的。例如:
 代码如下:
function taxedprice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedprice(100);
?>

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

输出的结果是:

0.03

1.03

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

4 变量的变量
和c一类的静态语言不同,php的变量名本身可以是一个变量,这对于需要动态生成很多变量的时候是很便利的。例如:
 代码如下:
$r="hello";
$$r="i am hello";
echo $hello;
?>

输出结果为: i am hello

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn