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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
php 中的4种标记风格介绍
May 10 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 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数据库开发知多少
2006/10/09 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
javascript中的作用域scope介绍
2010/12/28 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
浅析return false的正确使用
2013/11/04 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
Django使用rest_framework写出API
2020/05/21 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
婚礼主持词
2014/03/13 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
升国旗演讲稿
2014/09/05 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
2014年体育工作总结
2014/11/24 职场文书
房地产项目合作意向书
2015/05/08 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
特种设备安全管理制度
2015/08/06 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
分享几个实用的CSS代码块
2022/06/10 HTML / CSS