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
模仿OSO的论坛(三)
Oct 09 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
原生php实现excel文件读写的方法分析
Apr 25 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 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 显示指定路径下的图片
2009/10/29 PHP
php array的学习笔记
2012/05/16 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
33种Javascript 表格排序控件收集
2009/12/03 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
Angular路由简单学习
2016/12/26 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
利用python 读写csv文件
2020/09/10 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
香港通票:Hong Kong Pass
2019/02/26 全球购物
音乐学个人的自荐书范文
2013/11/26 职场文书
六年级数学教学反思
2014/02/03 职场文书
紧急通知
2015/04/17 职场文书
2015年学生管理工作总结
2015/05/26 职场文书