服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - PHP的变量总结 新手推荐

PHP的变量总结 新手推荐

2019-11-21 13:58PHP教程网 PHP教程

PHP的变量总是以美元符号$开头,然后是变量名。变量名遵循标识符的命名规则,即变量明可以以字母或下划线开头,由字母、下划线、数字活从127-255的其他ASCII字符组成。需要注意的是变量是要区分大小写的。

PHP中不需要显示声明变量,变量声明可以与赋值同时进行。好的编程习惯是:所有变量应当在使用前进行声明,最好带有注释。

一、变量的赋值 

变量声明后就可以给其赋值,有两种方式:值赋值和引用赋值。 
1、值赋值 
$color = "red" ; 
$sum = 12+"15" ; /* $sum = 27 */ 

2、 若希望两个变量指向一个值的同一个副本,则需要通过引用赋值。 
引用赋值 
所创建的变量与另一个变量引用的内容相同,如果多个变量引用了同一个内容,修改其中任意一个变量,在其余的变量上都将有所反映。 
例子: 
<?php 
$value1 = "hello" ; 
$value2 = &value1 ; /*$value1 and $value2 both equal "hello" .*/ 
$value2 = "goodbye" ; /*$value1 and $value2 both equeal "goodbye". */ 
?> 

二、变量的作用域 
PHP脚本的任何位置都可以声明变量,但声明变量的位置会大大影响访问变量的范围。这个可访问的范围称为作用域(scope)。 
PHP变量的4中作用域: 
△ 局部变量 
△ 函数参数 
△ 全局变量 
△ 静态变量 
1、局部变量 
在函数中声明的变量认为是局部变量,只能在函数中引用,退出声明变量的函数时,该变量及相应的值就会撤销。消除了导致全局访问的变量被有意或无意修改的可能性。 

$x = 4 ; 
function assignx ( ) { 
$x = 0 ; 
print "\$x inside function is $x . <br>" ; 

assignx ( ) ; 
print "\$x outside of function is $x . <br>" ; 
代码的执行结果为: 
$x inside function is 0 . 
$x outside function is 4 . 

2、函数参数 
PHP和其他编程语言一样,任何接受参数的函数都必须在函数首部中声明这些参数。虽然这些参数接受函数外部的值,但退出函数后就无法再访问这些参数。(按引用传递的参数除外) 
例如: 
function x10 ( $value ) { 
$value = $value * 10 ; 
return $value ; 

函数执行完毕,参数即将撤销。 

3、全局变量 
与局部变量相反,全局变量可以在程序的任何位置访问。当在函数中改变全局变量时,需要在该函数中将变量显示地生命为全局变量,只要在函数中的该变量前加上GLOBAL即可。 
例如: 
$somevar = 15 ; 
function addit ( ) { 
GLOBAL $somevar ; 
$somevar ++ ; 
print "somevar is $somevar" ; 

addit ( ) ; 
$somevar 显示的值应为16 ,但是,若去掉 GLOBAL $somevar ; 这行,变量$somevar 将被隐含的设置为0,再加1 ,最后显示的值就是1 。 
声明全局变量的另一方法是使用PHP的$GLOBAL数组,如下: 
$somevar = 15 ; 
function addit ( ) { 
$GLOBALS[ 'somevar' ]++ ; 

addit ( ) ; 
print "somevar is ". $GLOBALS[ 'somevar' ] ; 
返回值如下: somevar is 16 . 

4、静态变量 
静态(static)作用域。普通变量的函数参数在函数结束时会撤销,但静态变量在函数退出时不会丢失值,并且再次调用此函数时还能保留这个值。在汴梁明前加上关键字 STATIC 就可以声明一个静态变量。 
STATIC $somevar ; 
考虑一个例子: 
function keep_track ( ) { 
STATIC $count = 0 ; 
$count ++ ; 
print $count ; 
print "<br>" ; 

keep_track ( ) ; 
keep_track ( ) ; 
keep_track ( ) ; 
keep_track ( ) ; 
若$count 没有被指明为静态(相应的,$count就是一个局部变量),输出将会是 




因为$count是静态的,它会在每次执行函数时保留前面的值。输出如下: 




静态作用域对于递归函数很有用。递归函数(recursive function)是一个功能强大的编程概念,它是一个可以重复调用自身的函数,直到满足某个条件为止。 

5、 PHP的超级全局变量 
PHP提供了很多有用的预定义变量,可以在执行脚本的人和位置访问,用于提供大量与环境有关的信息。可以通过这些变量获得关于当前用户会话、用户操作系统环境和本地操作环境等详细信息。PHP会创建部分变量,而其他许多变量的可用性和值则取决于操作系统和WEB服务。 

输出所有预定义变量: 
foreach ( $_SERVER as $var => $value ) { 
echo "$var => $value <br>" ; 

显示用户的IP地址: 
print "HI!Your IP address is ".$_SERVER[ ' REMOTE_ADDR' ] ; 

PHP中要使用预定义变量数组,必须在PHP.INI文件中启用配置参数 track_vars 。

延伸 · 阅读

精彩推荐
  • PHP教程Laravel框架搜索分页功能示例

    Laravel框架搜索分页功能示例

    这篇文章主要介绍了Laravel框架搜索分页功能,涉及Laravel框架数据库查询、搜索及分页功能实现技巧,需要的朋友可以参考下...

    梦屿千寻-不忘初心2272019-06-21
  • PHP教程PHP调用接口用post方法传送json数据的实例

    PHP调用接口用post方法传送json数据的实例

    今天小编就为大家分享一篇PHP调用接口用post方法传送json数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    憇憇3812019-09-29
  • PHP教程php处理抢购类功能的高并发请求

    php处理抢购类功能的高并发请求

    这篇文章主要为大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    春风不及你的笑3872019-10-22
  • PHP教程CMSPRESS 10行代码搞定 PHP无限级分类2

    CMSPRESS 10行代码搞定 PHP无限级分类2

    超级无限分类 使用简单 效率极高 核心代码10行不到,另外 求这个分类的不足,和更高效简单的无限分类方法 ...

    mdxy-dxy2072019-10-14
  • PHP教程几款免费开源的不用数据库的php的cms

    几款免费开源的不用数据库的php的cms

    下面的几种内容采集系统都是英文版的,全部不需使用数据库,都是国外的免费并且开源CMS。对中文支持如何,你自己试试吧! ...

    php教程网3532019-11-13
  • PHP教程PHP zlib扩展实现页面GZIP压缩输出

    PHP zlib扩展实现页面GZIP压缩输出

    GZIP(GNU-ZIP)是一种压缩技术。经过GZIP压缩后页面大小可以变为原来的30%甚至更小。这样用户浏览的时候就会感觉很爽很愉快! ...

    PHP教程网3952019-11-01
  • PHP教程PHP PDOStatement::fetch讲解

    PHP PDOStatement::fetch讲解

    今天小编就为大家分享一篇关于PHP PDOStatement::fetch讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

    php参考手册1522019-06-24
  • PHP教程PHP用GD库生成高质量的缩略图片

    PHP用GD库生成高质量的缩略图片

    PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的缩略图都比较不理想。今天试用PHP,GD库来生成缩略图。虽然并不100%完美。可是也应该可以满足缩略图...

    PHP教程网2942019-11-19