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 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
PHP7 其他语言层面的修改
Mar 09 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
yii的CURD操作实例详解
2014/12/04 PHP
PHP学习笔记之session
2018/05/06 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
python 判断一个进程是否存在
2009/04/09 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
学生手册评语
2014/05/05 职场文书
增员口号大全
2014/06/18 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
成本会计岗位职责
2015/02/03 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android