您的位置:首页 > 编程语言 > PHP开发

2. PHP变量

2016-04-15 14:48 337 查看

1. 形式:必须以
$
开头,后面紧跟变量名

注意:通常在”能够出现”变量的语法中,只要出现
$
符号,并在其后面出现紧挨着的字符,就会被识别为一个变量,即使不存在该变量,例如:


可以通过
{}
来解决这个问题

<?php

echo "$info['username']你好";//这里会有问题需要使用{}定界符将变量名包起来


2. empty()和isset()区别

如果
empty()
函数的参数是非空或非零的值,则empty()返回false,即”“,0,”0”,null,false,array(),var $var;以及没有任何属性的对象都将会被认为是空的。如果参数为空,则返回true;

如果
isset()
参数存在,则返回true,否则返回false.如果使用isset()测试一个被设置成null的变量或使用unset()释放一个变量,将返回false.同时注意的是一个null字节,即
("\0")
并不等于PHP的NULL常数。这里推荐使用
!empty($var)
的形式判断一个变量存在且不为空

3. 引用

通过引用形式将两个变量相关联起来。变量名不同,但是同时映射至同一个变量值。用unset()取消的只是映射关系,所以使用unset()则不会导致所有引用变量消失

<?php

$foo = 25;

$har = &$foo;//这是一个有效的引用赋值

unset($bar);    //不会使$foo变量消失

echo $foo; //显示25


4. 变量测试函数

除了常用的那几个is_type形式的函数,还应注意:

is_scalar():判断是否是标量,即整数,浮点数,布尔型或字符串

is_callable():判断是否是有效的函数名

5. 预定义变量

1:预定义变量又叫超全局变量包括:

$_GET
,
$_POST
,
$_SERVER
,
$_REQUEST
,
$GLOBALS
,
$_COOKIE
,
$_SESSION
, ……….(大约10个)

作用域问题。php中,自定义的变量作用域,分为两种:全局作用域(函数外),局部作用域(函数内)。但预定义变量的作用域称为“超全局作用域”:全局作用域+局部作用域的总和(函数内外全都可用)

数据类型问题:超全局变量都是数组!

5.1
$_GET变量

形式一:

<form  action=”abc.php”  method=”get” >

项目1: <input type=”text”   name=”uName”   />

项目2: <input type=”password”   name=”uPswd”   />

<input type=”submit”  value=”提交”  />

</form>


形式二:

<a  href=”abc.php?uName=test1&uPswd=123”  > 文字。。。</a>


形式三:

<script>

location.href = “abc.php?uName=test1&uPswd=123”;        //利用location对象的属性href

</script>


形式四:

<script>

location.assign( “abc.php?uName=test1&uPswd=123”);      //利用location对象的方法assign()

</script>


5.2
$_POST变量

<form  action=”abc.php”  method=”post” >

项目1: <input type=”text”   name=”uName”   />

项目2: <input type=”password”   name=”uPswd”   />

<input type=”submit”  value=”提交”  />

</form>


通常,网页中的form表单,一般都用post方式,get方式主要体现在其他三种形式

5.3
$_REQUEST变量

当get数据和post数据同时提交并且其中有重名的时候

说明

尽量避免重名

如果重名了,此时$_REQUEST只会记录(存储)其中一个数据(要么post数据,要么get数据)

至于记录哪个,由php.ini中的一个设置项决定

request_order="GP"
//默认值,G代表GET,P代表POST

含义是:先存储GET数据,再存储POST数据

可见,如果重名,则POST就会覆盖GET数据

改为:
request_order="PG
,顺序反过来

GET,_GET,_POST,$_REQUEST三种数据是相互独立的,即如果unset一个数据的话,其他不受影响

5.3
$_SERVER变量(数组)

常用的有:

REMOTE_ADDR:用户的IP地址

SERVER_ADDR:服务器端的IP地址

SERVER_NAME:服务器名(主机名)

DOCUMENT_ROOT:站点绝对路径(其实就是主机设置中的DocumentRoot)

PHP_SELF:当前网页的文件路径

QUERY_STRING:表示一个get请求的整体字符串,即”
http://www.study.com/abc.php?a=5&b=10
“链接地址中的”a=5&b=10”

5.4
$GLOBALS变量

包含我们自定义的所有全局变量

<?php

$v1 = 1;

$v2 = 2;

function f1(){

$v3 = 3;

$v3 = 4;

echo "调用了函数f1";

}

f1();

var_dump($GLOBALS);//其中只有$v1和$v2,$v3和$v4没有在$GLOBALS中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: