PHP开始啦--变量作用域,global关键词,static关键词
2017-06-07 14:18
507 查看
PHP是运行在服务器端的脚本语言,PHP代码在服务器上执行,以纯HTML结果返回浏览器
PHP作用:
能够生成动态页面内容
能够创建,打开,读取,写入,删除以及关闭服务器上的文件
能够接收表单数据
能够发送并取回cookies
能够添加,删除,修改数据库中的数据
能够限制用户访问网站中的某些页面
能够对数据进行加密
PHP脚本可放置于文档中的任何位置
PHP脚本以
PHP文件的默认文件扩展名是“.php”
PHP注释:
1.单行注释:
//
#
2.多行注释:
/* ………*/
变量以$符号开头
以标识符命名规则为准
对大小写敏感
2.PHP不用单独创建变量,变量在首次被赋值时被创建
例.
如上,不用告知PHP变量的数据类型,PHP会根据它的值,自动把变量转换为正确的数据类型
3.显示变量数据类型:
如.
4.获取当前变量消耗的内存:
如.
变量的作用域:变量能够被引用/使用的那部分脚本
PHP的三种不同的变量作用域:
local局部
global全局
static静态
函数内部声明的变量拥有local局部作用域,只能在函数内部进行访问
例.
运行结果:
![](https://img-blog.csdn.net/20170609141831770?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFubHU2NjZfcGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
如上,
故此,在函数内部输出
在函数之外输出
注:可以在不同的函数中创建名称相同的局部变量,因为局部变量只能作用于创建它的函数中
例.
在函数内部访问全局变量:
运行结果:
![](https://img-blog.csdn.net/20170609150947763?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFubHU2NjZfcGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
例.
在函数内部定义全局变量:
PHP在$GLOBALS[‘全局变量名’]的数组中存储了所有的全局变量。可以在函数内直接访问,也可直接更新全局变量
例.
如上, mTe()函数执行完后,局部变量
若首次声明局部变量
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
相关文章推荐
- php 函数变量的作用域 两个关键词global 和static
- php 全局变量global的作用域
- php源码之路第三章第六节( 变量的作用域和global语句)
- php函数,static,global关键字及三种变量作用域
- static成员变量,non-static成员变量,局部变量,global 变量作用域和生存周期
- PHP变量关键字global/$GLOBAL[]/static
- 转:PHP变量作用域(花括号、global、闭包)
- PHP变量作用域(花括号、global、闭包)
- php的static变量作用域
- php部分(查看文件、建立站点、语法变量、变量的几个方法、“全局局部变量的调用”、static、函数参数的作用域);
- PHP变量作用域(花括号、global、闭包)
- php变量作用域(花括号、global、闭包)
- php:global变量解析
- 【转帖】php变量作用域
- PHP全局变量global
- php变量作用域的一些问题
- [转]PHP变量的声明及其作用域&静态变量
- php:global变量解析
- {php 初学头疼问题之:static const global}
- PHP的static变量初始化问题