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 文章中的远程图片采集到本地的代码
Jul 30 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
php foreach循环中使用引用的问题
Nov 06 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
php简单压缩css样式示例
Sep 22 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 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无限级分类方法及代码
2013/06/21 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
js里的prototype使用示例
2010/11/19 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
Vue实现图书管理案例
2021/01/20 Vue.js
python实现AES加密解密
2019/03/28 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python输出pdf文档的实例
2020/02/13 Python
使用python计算三角形的斜边例子
2020/04/15 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
python实现磁盘日志清理的示例
2020/11/05 Python
flask框架中的cookie和session使用
2021/01/31 Python
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
高三地理教学反思
2014/01/11 职场文书
骨干教师培训方案
2014/05/06 职场文书
考试后的感想
2015/08/07 职场文书
中学教代会开幕词
2016/03/04 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python