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

PHP开始啦--变量作用域,global关键词,static关键词

2017-06-07 14:18 507 查看
PHP是运行在服务器端的脚本语言,PHP代码在服务器上执行,以纯HTML结果返回浏览器

PHP作用:

能够生成动态页面内容

能够创建,打开,读取,写入,删除以及关闭服务器上的文件

能够接收表单数据

能够发送并取回cookies

能够添加,删除,修改数据库中的数据

能够限制用户访问网站中的某些页面

能够对数据进行加密

PHP脚本可放置于文档中的任何位置

PHP脚本以
<?php
开头,以
?>
结尾

PHP文件的默认文件扩展名是“.php”

PHP注释:

1.单行注释:

//

#

2.多行注释:

/* ………*/

变量

1.变量命名规则:

变量以$符号开头

以标识符命名规则为准

对大小写敏感

2.PHP不用单独创建变量,变量在首次被赋值时被创建

例.

<?php
$a="Nico";
$b=5;
$c="5";
?>


如上,不用告知PHP变量的数据类型,PHP会根据它的值,自动把变量转换为正确的数据类型

3.显示变量数据类型:
var_dump($变量名)


如.

<?php
$x="5";
$y=5;
echo var_dump($x);   //string '5' (length=1)
echo var_dump($y);   //int 5
?>


4.获取当前变量消耗的内存:
memory_get_usage($变量名)


如.

<?php
$x=5;
echo memory_get_usage($x);   //262144
?>


变量作用域

可以在PHP脚本的任意位置对变量进行声明。

变量的作用域:变量能够被引用/使用的那部分脚本

PHP的三种不同的变量作用域:

local局部

global全局

static静态

local和global作用域

函数之外声明的变量拥有global全局作用域,只能在函数之外进行访问

函数内部声明的变量拥有local局部作用域,只能在函数内部进行访问

例.

<?php
$x=5; //拥有global全局作用域
function mTe(){
$y=10;//拥有local局部作用域
echo "函数内部变量x是:$x";
echo "<br>";
echo "函数内部变量y是:$y";
}
mTe();
echo "<br>";
echo "函数之外变量x是:$x";
echo "<br>";
echo "函数之外变量y是:$y";
?>


运行结果:



如上,
$x
是创建于函数之外的全局变量,拥有global全局作用域;

$y
是创建于函数内部的局部变量,//拥有local局部作用域。

故此,在函数内部输出
$x
和$y这两个变量的值时,
$x
的值无法输出,可以输出
$y
的值,因为
$y
是在函数内部创建的局部变量;

在函数之外输出
$x
$y
这两个变量的值时,
$y
的值无法输出,可以输出
$x
的值,因为
$x
是全局变量

注:可以在不同的函数中创建名称相同的局部变量,因为局部变量只能作用于创建它的函数中

global关键词

作用:在函数内部访问/定义全局变量

例.

在函数内部访问全局变量:

<?php
$x=5;
$y=10;

function mTe(){
global $x,$y;
$y=$x+$y;
/*等效于 $GLOBALS['y']==$GLOBALS['x']+$GLOBALS['y'];*/
}
mTe();
echo $x."<br>".$y;
?>


运行结果:



例.

在函数内部定义全局变量:

<?php
function mTe(){
global $x;
$x=123;
/*以上两句必须分开写,不能合成一句*/
/*等效于 $GLOBALS['x']=123;*/
}
mTe();
echo $x;   //123
?>


PHP在$GLOBALS[‘全局变量名’]的数组中存储了所有的全局变量。可以在函数内直接访问,也可直接更新全局变量

static关键词

作用:使函数完成/执行后,某个局部变量不被删除。在首次声明变量时使用static关键词

例.

<?php
function mTe(){
static $x=10;
echo $x;
$x++;
}
mTe();  //10
mTe();  //11
mTe();  //12
?>


如上, mTe()函数执行完后,局部变量
$x
本应被删除,但首次声明时使用static关键字,故局部变量
$x
在函数 mTe()执行完后不会被删除,每当函数被调用时,局部变量
$x
存储的信息都是函数最后一次被调用时所包含的信息

若首次声明局部变量
$x
时未使用static关键字,则每次调用函数 mTe()结果均为10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息