PHP之变量、常量学习笔记


Posted in PHP onMarch 27, 2008

有关变量的传地址赋值

PHP 3 中,变量总是传值赋值。PHP 4 提供了另外一种方式给变量赋值:传地址赋值。使用传地址赋值,即简单地追加一个(&)符号到将要赋值的变量前(源变量)。这意味着新的变量简单的引用了原始变量,改动新的变量将影响到原始变量,反之亦然。

<?php
$foo = 'Bob';
$bar = &$foo;
$bar = "My name is $bar";
echo $bar;
echo $foo; 
?> 

变量foo只在首行被赋值,正常应输出为“Bob”,然而传址赋值给变量bar,在变量bar值发生变化的同时,变量foo的值也发生了变化。

关于(超)全局变量

PHP全局变量的声明是在引用变量时声明的,而非在程序首行定义、赋值变量时来定义是全局还是局部变量。

<?php
$a = 1;
$b = 2;

function Sum()
{
global $a, $b;
$b = $a + $b;
}

Sum();
echo $b;
?> 

如果函数Sum()内没有使用global声明全局变量,程序会报错未定义的变量。

当然,在PHP中还有一些变量在某程序功能范围内是不需要global声明,这些变量称为 超全局变量,而这些超全局变量基本都不是用户自定义的,而是PHP预定义的一些变量,比如 $_GET、$_POST、$_COOKIE等。

有关可变变量

PHP中比较有意思的可变变量,比如 $a="bruce" ,还可以使用 $$a 表示为 $bruce ,即可变变量是使用的两个美元符号。

但其中在 $$a[1] 中,是 $a[1] 作为一个变量,还是 $$a 作为一个变量并取出该变量中索引为 [1] 的值?这里没有前后的依次关系,而是使用 ${$a[1]} 或 ${$a}[1] 来表示上述两种情况。

=========================================================

关于常量

常量区别于变量,从常量被定义起其范围就是全局的

量默认为大小写敏感,按照惯例常量标识符总是大写的

常量前面没有美元符号($)

常量一旦定义就不能被重新定义或者取消定义

常量只能用 define() 函数定义,而不能通过赋值语句

比如 define("MYNAME","cnbruce") 就是定义了一个值为“cnbruce”的MYNAME常量

<?php
define("MYNAME","cnbruce");
$MYNAME="cnrose";
echo MYNAME;
echo $MYNAME;
?> 

另外,如何将常量和变量的值一起输出,这需要涉及到PHP的字符串运算,使用英文句号(.)可将字符串连接合并成新的字符串,类似ASP中的&。

echo MYNAME.",".$MYNAME; 输出为“cnbruce,cnrose”

和变量中的预定义变量一样,PHP也有预定义常量(或称魔术常量),即不需要define() 函数定义。比如

__FILE__ 表示文件的完整路径和文件名,类似于ASP中Server.Mappath当前文件

<?php
echo __FILE__;
?> 

PHP预定义常量分为:
内核预定义常量,在 PHP 内核、Zend 和 SAPI 模块中定义的常量
标准预定义常量,PHP 中默认定义的常量 

PHP 相关文章推荐
用PHP和ACCESS写聊天室(六)
Oct 09 PHP
php下正则来匹配dede模板标签的代码
Aug 21 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
PHP6 中可能会出现的新特性预览
Apr 04 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php限制ip地址范围的方法
Mar 31 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
php日历[测试通过]
Mar 27 #PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 #PHP
php中cookie的作用域
Mar 27 #PHP
简单的PHP图片上传程序
Mar 27 #PHP
php中变量及部分适用方法
Mar 27 #PHP
php Undefined index和Undefined variable的解决方法
Mar 27 #PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 #PHP
You might like
php adodb分页实现代码
2009/03/19 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
js前端导出Excel的方法
2017/11/01 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
python中assert用法实例分析
2015/04/30 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Django URL传递参数的方法总结
2016/08/28 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python读写zip压缩文件的方法
2018/08/29 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
班主任寄语2015
2015/02/26 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python