php中各种定义变量的方法小结

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中各种定义变量的方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-12-06 20:22:05

php中各种定义变量的方法小结的相关文章

python类和函数中使用静态变量的方法

  本文实例讲述了python类和函数中使用静态变量的方法.分享给大家供大家参考.具体分析如下: 在python的类和函数(包括λ方法)中使用静态变量似乎是件不可能[Nothing is impossible]的事, 但总有解决的办法,下面通过实现一个类或函数的累加器来介绍一些较为非主流的方法 方法一.通过类的__init__和__call__方法 ? 1 2 3 4 5 6 7 8 9 10 11 class foo: def __init__(self, n=0): self.n = n d

跪求大神-java中static定义变量

问题描述 java中static定义变量 运行结果为什么是0不是1? 解决方案 因为你定义了参数x 根据就近原则,你的x++访问的是这个参数x变量,而不是成员变量x 解决方案二: 因为你的参数名也叫x,x++ 这里是将参数x自增,不是全局变量x. 所以全局变量x里面的值还是0. 解决方案三: class Test { public static int x = 9; public static void name(int x) { x ++; System.out.println(x); //为

在Word 2007中打开多文档方法小结

在Word 2007中打开多文档方法小结 大家知道,如果想打开多个Word2007文档,可以将所有需要打开的文档选择上,然后单击鼠标右键,选择"打开",这样文件就被一一打开了,但是打开多个窗口,不但占用系统资源,而且也不利于操作编辑.其实,按照笔者的步骤去做,上述问题将会迎刃而解. 首先,打开一个空白文档,然后将需要打开的文档全部选中,单击"复制",在Word2007空白文档中任意位置单击"粘贴",这样之后,每个文档都会被 粘贴到这个Word20

awk 中的定义变量问题

问题描述 awk 中的定义变量问题 我觉得这个问题还真是有趣的让我头疼啊... 我在begin 中定义一了个变量 name="li"; 然后在之后 的{}中调用 ,我用了一个正则匹配,{if($1~/^'"$(name)"'/) {print name;}} 正常运行 ,改成print " ",也正常运行,但是如果改成 count++; 就会提示我 name:not found. 晕死了,求救啊 解决方案 你在awk里面定义了变量name,使用时

Android编程中延后处理事件的方法小结

本文实例讲述了Android编程中延后处理事件的方法.分享给大家供大家参考,具体如下: 一.Handler和TimerTask相结合 1.首先定义TimerTask TimerTask task = new TimerTask(){ public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; 2.定义Handler Handler handler

C语言中的各种文件读写方法小结_C 语言

前言    找工作的时候,曾经用C语言练习过一段时间的算法题目,也在几个还算出名的OJ平台有过还算靠谱的排名.之前以为C语言只限于练习一下算法,但是工作中的一个问题解决让我意识到C语言的用处还是非常广泛的.下面介绍一下,如果用C语言来操作文件保存一个字符串,和读取一个字符串.算法中往往都是printf来打印出结果,但是真实工作中往往通过文件来进行一些持久化的存储工作. C-File I/O    文件的I/O操作是每一门语言的重点,因此这里我先来介绍一下如何用C语言去进行文件的I/O操作. 文件

sqlserver中的自定义函数的方法小结

"自定义函数"是我们平常的说法,而"用户定义的函数"是 SQL Server 中书面的说法. SQL Server 2000 允许用户创建自定义函数,自定义函数可以有返回值. 自定义函数分为:标量值函数或表值函数 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数.可以使用多条 Transact-SQL 语句定义标量值函数. 如果 RETURNS 子句指定 TABLE,则函数为表值函数. 表值函数又可分为:内嵌表值函数(行内函数)或多语句函数 如果

Web程序中网页间数据传递方法小结

web|程序|数据|网页 介绍 我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页.在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法.在此例子中,创建的网页由一个文本控件和几个按钮控件组成.在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页. Response.Redirect 让我们首先看一看如何使用Response.Redirect方法传递数据.这是它们之中最简单的方法.在文本框中输入一些数据,并且当你输入完成数据后,按下"Resp

vc中播放mp3文件的方法小结

一般播放MP3常见的有两种方法,一种是自己解码,另外一种用系统的库,比如MCI,当然如果可以用控件直接用个控件会更方便. 1.      使用mci   #include <windows.h> #include <stdio.h> #include <mmsystem.h> #include <shellapi.h> #include <AFXCOM_.H>   #pragma comment(lib,"winmm.lib"