php 变量定义方法


Posted in PHP onJune 14, 2009

1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
2.普通变量$a = "hello";
3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
6.给变量赋值:传地址赋值(简单引用):
$bar = &$foo; //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV : 执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>

PHP 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
PHP 函数语法介绍一
Jun 14 #PHP
PHP 木马攻击防御技巧
Jun 13 #PHP
C# Assembly类访问程序集信息
Jun 13 #PHP
php adodb连接mssql解决乱码问题
Jun 12 #PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 #PHP
php MsSql server时遇到的中文编码问题
Jun 11 #PHP
php 分页类 扩展代码
Jun 11 #PHP
You might like
日本十大惊悚动漫
2020/03/04 日漫
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
Web程序工作原理详解
2014/12/25 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
js数组去重的hash方法
2016/12/22 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
深入理解Python中range和xrange的区别
2017/11/26 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
python中添加模块导入路径的方法
2021/02/03 Python
事业单位年度考核评语
2014/12/31 职场文书
银行求职自荐信范文
2015/03/04 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python