PHP的变量总结 新手推荐

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就是一个局部变量),输出将会是
1
1
1
1
因为$count是静态的,它会在每次执行函数时保留前面的值。输出如下:
1
2
3
4
静态作用域对于递归函数很有用。递归函数(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 。

(0)

相关推荐

  • PHP教程 变量定义

    PHP 中的变量 变量用于存储值,比如数字.文本字符串或数组. 一旦设置了某个变量,我们就可以在脚本中重复地使用它. PHP 中的所有变量都是以 $ 符号开始的,变量名是区分大小写的. 在 PHP 中设置变量的正确方法是: $var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号.如果那样做的话,变量将是无效的. 虽然在 PHP 中并不需要初始化变量,但这是个好习惯.未初始化的变量具有其类型的默认值 - FALSE,零,空字符串或者空数组. 复制代码 代码如下: <

  • PHP 变量类型的强制转换

    也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个整数. PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型. 复制代码 代码如下: <?php $foo = 10; echo "转换前:\$foo=".$foo; //输出一个整数 echo "<br/>" //输出:$foo=10 echo "<br/>";

  • PHP学习之PHP变量

    PHP变量 PHP3支持下面类型的变量: (一).内部变量 主要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),对象(object). 1 初始化变量 要在PHP中初始化变量, 你只要简单的给它赋值即可.对于大多数类型,这是最直接的.对于数组和对象,可以使用其它方法. 2 初始化数组 数组可以使用这两种方法之一来赋值: 使用一系列连续数值,或使用array()函数构造 (见 Array functions 部分). 要将连

  • PHP 判断变量类型实现代码

    PHP 包括几个函数可以判断变量的类型,例如:gettype(),is_array(),is_float(),is_int(),is_object() 和 is_string(). 复制代码 代码如下: <?php $s = "this is a string"; $i = 9; $arr = array(2,4,6); is_string($s); //返回TRUE,表示$s是一个字符串变量 is_string($i); //返回FALSE,表示$i不是一个字符串变量 is_a

  • PHP 变量的定义方法

    变量的定义 ⚑变量的类型 ⚑变量的使用 变量即是存在于内存中可以不断变化的一个个对象,我们可以将内存想象成一个街道,街道中有许多住户,每位住户都会有自己的门牌号码,这就好比是内存中的地址(C语言中经常提到的一个概念,在这里我们就不多讨论了),对于其中一家住户我们可以说是1号楼1号,还可以说成是王小明家,用一个名字来代替一个地址.而王小明家里某一时刻有几个人就是一个变化的量了,可能中午有3个人,下午只有1个人,晚上有5个人.因此,对于内存中的某一地址我们要引用,也可以叫它为A,或者area.这就是

  • PHP的变量总结 新手推荐

    PHP中不需要显示声明变量,变量声明可以与赋值同时进行.好的编程习惯是:所有变量应当在使用前进行声明,最好带有注释. 一.变量的赋值 变量声明后就可以给其赋值,有两种方式:值赋值和引用赋值. 1.值赋值 $color = "red" ; $sum = 12+"15" ; /* $sum = 27 */ 2. 若希望两个变量指向一个值的同一个副本,则需要通过引用赋值. 引用赋值 所创建的变量与另一个变量引用的内容相同,如果多个变量引用了同一个内容,修改其中任意一个变量

  • C语言实现制作通讯录(新手推荐)

    目录 一.本通讯录要实现的功能 三.程序编写 四.完整程序 一.本通讯录要实现的功能 通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名.性别.年龄.电话.住址 通讯录可执行的操作如下: 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人 二.通讯录初步准备: 1.创建一个.c文件,编写主函数main: 2.再创建一个.c文件,用于集中存放1中的.c文件所使用到的自定义函数: 3.创建一个.h头文件,用于

  • 新手推荐BIOS设置、硬盘分区、系统安装、备份全程图解!第1/6页

    BIOS设置对大部分的电脑而言,在开机时,屏幕上会有这样的提示--"Press DEL to enter SETUP". screen.width-461) window.open('http://www.aoshi.com.cn/Article/UploadFiles/200605/20060521094403796.jpg');" src="http://www.aoshi.com.cn/Article/UploadFiles/200605/2006052109

  • 详解关于Windows10 Java环境变量配置问题的解决办法

    关于Windows10 Java环境变量配置问题的解决办法 由于最近有一些时间,所以想要把之前学过一段时间的Java重新捡起来看看,之前的学习环境是Ubuntu,对于环境变量的配置和Windows也没有什么本质的区别,只不过是要用自带的编辑器更改一些东西而已. 那么我先讲讲我对于环境变量的一些自己的理解,由于每次编译源程序的时候需要用到编译工具,而Java的编译工具就是从oracle官网上下载的jdk包中的一些jar文件,所以如果要让系统识别java或者javac命令,那么就必须让系统知道这些文

  • Objective-C 入门篇(推荐)

    目录 前言 基本数据类型 其他数据类型 id类型 BOOL类型 nil和Nil NSString(不可变字符串) NSMutableString(可变字符串) NSInteger.NSUInteger和NSNumber 集合 1. NSArray(不可变) 2. NSMutableArray(可变的) 字典 NSDictionary NSMutableDictionary NSSet && NSMutableSet 消息传递 类 访问修饰符 属性 方法 构造方法 创建类对象 self 继承

  • Angular 应用技巧总结

    angular的核心思想是通过数据驱动一切,其他东西都是数据的延伸. 套用Javascript一切皆对象的思想,在angular中可以说一切皆数据.   关于项目构建     (1) requirejs以及Yeoman 在刚开始接触或者使用Angular的时候,总会疑惑与类似的问题,我实践的答案是不需要requirejs或者Yeoman.前者不使用,因为angular本身有module的实现.后者是因为Angular组织结构以及项目构建完全不必要弄得如此繁杂,手写或者在github上pull一个

  • JavaScript常用代码书写规范的超全面总结

    一.全局命名空间污染 总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块. 不推荐 var x = 10, y = 100; console.log(window.x + ' ' + window.y); 推荐 ;(function(window){ 'use strict'; var x = 10, y = 100; console.log(window.x + ' ' + window.y); }(window)); 二.立即执行函数 在立即执行函数里面,如果有用到全局变量应该通过

  • 前端编码规范(3)JavaScript 开发规范

    JavaScript规范 变量声明 总是使用 var 来声明变量.如不指定 var,变量将被隐式地声明为全局变量,这将对变量难以控制.如果没有声明,变量处于什么定义域就变得不清(可以是在 Document 或 Window 中,也可以很容易地进入本地定义域).所以,请总是使用 var 来声明变量. 采用严格模式带来的好处是,当你手误输入错误的变量名时,它可以通过报错信息来帮助你定位错误出处. 变量名 变量名推荐使用驼峰法来命名(camelCase) 全局变量为大写 (UPPERCASE ) 常量

  • OnSharedPreferenceChangeListener详解及出现不触发解决办法

    之前使用OnSharedPreferenceChangeListener,遇到了点小问题,就是有些时候OnSharedPreferenceChangeListener没有被触发.最近花了点时间研究了一下,小做整理.本文将会介绍监听器不被触发的原因,解决方法,以及其中隐含的一些技术细节. 问题再现 OnSharedPreferenceChangeListener是Android中SharedPreference文件发生变化的监听器.通常我们想要进行监听,会实现如下的代码. protected vo

  • 8种常见的Java不规范代码

    在工作上,我最近对一个现有的Java项目代码进行了清理.完成之后,我发现了一些反复出现的不规范代码.所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性. 这个列表不区分顺序,全部来自一些代码质量检查工具,如 CheckStyle, FindBugs 和PMD. 在Eclipse中格式化源代码并管理import语句 Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句).你可以使用下面的快捷键来使用这些功能. Ctrl + Sh

随机推荐