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 相关文章推荐
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
简单的PHP留言本实例代码
May 09 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP正则删除HTML代码中宽高样式的方法
Jun 12 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
yii2中关于加密解密的那些事儿
Jun 12 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代码优化及php相关问题总结
2006/10/09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
js闭包的用途详解
2014/11/09 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
Vue异步加载about组件
2017/10/31 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
python处理二进制数据的方法
2015/06/03 Python
详解Python中heapq模块的用法
2016/06/28 Python
python实现名片管理系统
2018/11/29 Python
python绘制雪景图
2019/12/16 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Python 内存管理机制全面分析
2021/01/16 Python
python中if嵌套命令实例讲解
2021/02/25 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
会计电算化专业毕业生自荐信
2013/12/20 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
学习标兵获奖感言
2014/02/20 职场文书
保险经纪人求职信
2014/03/11 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang