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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
傻瓜化配置PHP环境――Appserv
Dec 13 PHP
PHP 最大运行时间 max_execution_time修改方法
Mar 08 PHP
PHPCMS的使用小结
Sep 20 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
PHP7.0版本备注
Jul 23 PHP
twig模板常用语句实例小结
Feb 04 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
php自动载入类用法实例分析
Jun 24 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
PHP正则表达式之RCEService回溯
Apr 11 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中显示数组与对象的实现代码
2011/04/18 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
xtree.js 代码
2007/03/13 Javascript
javascript 特殊字符串
2009/02/25 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
浅析Git版本控制器使用
2017/12/10 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
通过实例学习Python Excel操作
2020/01/06 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
中学生自我评价范文
2014/02/08 职场文书
鲜花方阵解说词
2014/02/13 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
手工社团活动方案
2014/02/17 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
预备党员转正材料
2014/12/19 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
2016继续教育研修日志
2015/11/13 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python