php变量中的变量
㈠ php全局变量和php预定义变量
仅供参考,更多,可以查看http://www.phpsu.com/
预定义变量
PHP 提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在 PHP 以命令行形式运行时并不生效。有关这些变量的详细列表,请参阅预定义变量一章。
Warning
PHP 4.2.0 以及后续版本中,PHP 指令 register_globals 的默认值为 off。这是 PHP 的一个主要变化。让 register_globals 的值为 off 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT_ROOT 的值,将必须使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 来代替 $id 从 URL http://www.example.com/test.php?id=3 中获取 id 值,亦或使用 $_ENV['HOME'] 来代替 $HOME 获取环境变量 HOME 的值。
更多相关信息,请阅读 register_globals 的配置项条目,安全一章中的使用 Register Globals,以及 PHP » 4.1.0 和 » 4.2.0 的发行通告。
如果有可用的 PHP 预定义变量那最好用,如超全局变量。
从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP 中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;但是为了得到它们的内容和关于 PHP 预定义变量的进一步的讨论以及它们的本质,请参阅预定义变量。而且,你也将注意到旧的预定义数组($HTTP_*_VARS)仍旧存在。自 PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽。
Note: 可变变量 超级全局变量不能被用作可变变量。
Note: 尽管超全局变量和 HTTP_*_VARS 同时存在。但是他们并不是同一个变量,所以改变一个的值并不会对另一个产生影响。
如果某些 variables_order 中的变量没有设定,它们的对应的 PHP 预定义数组也是空的。
PHP 超全局变量
$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER
变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET
经由 URL 请求提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。
$_POST
经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。
$_COOKIE
经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组(依然有效,但反对使用)。
$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。详细信息请参阅 POST 方法上传。
$_ENV
执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组(依然有效,但反对使用)。
$_REQUEST
经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。此数组在 PHP 4.1.0 之前没有直接对应的版本。参见 import_request_variables()。
Caution
自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
Note: 当运行于命令行模式时,此数组将不会包含 argv 和 argc 条目;它们已经存在于数组 $_SERVER 中。
$_SESSION
当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS 数组(依然有效,但反对使用)。
㈡ php中static 静态变量和普通变量的区别
php中static 静态变量和普通变量的区别:
在变量的前面加上static 就构成了静态变量(static 变量)。
static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
㈢ html中使用php 的变量
html标签使用php中的变量方法如下:
一、如果html标签中使用php变量,提示:Undefined index: uid in /var/www//list.php,list.php的具体代码如下:
<?php
require'redis.php';
for($i=0;$i<=($redis->get("userid"));$i++){
$data[]=$redis->hgetall("user:".$i);
}
/*var_mp($data)的结果如下:
array(size=3)
0=>
array(size=0)
empty
1=>
array(size=4)
'uid'=>string'1'(length=1)
'username'=>string'jjj'(length=3)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
2=>
array(size=4)
'uid'=>string'2'(length=1)
'username'=>string'lamp'(length=4)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
*/
?>
<tableborder="1">
<caption>userlist</caption>
<tr>
<th>uid</th>
<th>username</th>
<th>age</th>
</tr>
<?phpforeach($dataas$v){?>
<tr>
<td><?phpecho$v['uid']?></td>
<td><?phpecho$v['username']?></td>
<td><?phpecho$v['age']?></td>
</tr>
<?php}?>
</table>
这时在echo 前 isset 下就可以了,代码如下:
<?php$a=10;if(isset($a)){echo"这个变量存在";}else{echo"这个变量不存在";}?>
二、 php可以和html混编的 ,如下图所示
㈣ php 定义变量
<?php//常量声明!defined("PI") or define("PI", 3.14);//变量声明$var = value; //value可以为值类型、引用类型、NULL、布尔类型、资源类型?>
㈤ 什么是PHP变量
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。(更多PHP知识相关推荐阅读:什么是PHP开发?PHP开发都用什么工具?)
常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
注: 在这里,字母是 a-z,A-Z,以及从 127 到 255(0x7f-0xff)的 ASCII 字符。
和 superglobals 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量。有关作用得更多信息请阅读手册中的变量范围。
语法
可以用 define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数 constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定你想要的是该常量本身的名字,如同你用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $foo[bar] 是错误的(除非你事先用 define() 将 bar 定义为一个常量)。如果你只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。
以上来自上海优就业老师进行的总结,关于上海IT培训PHP开发更多了解:网页链接
㈥ 在php变量中引用变量,然后再进行赋值的方法
<?php
$t=array(1,2,3);
$s=55;
for($i=0;$i<count($t);$i++){
$n="new".$t[$i];
$$n=$s;
}
echo$new1,"<br/>";
echo$new2,"<br/>";
echo$new3,"<br/>";
以上你直接拷贝运行,检验一下是不是你要的效果。
补充
$t=array("typeid"=>array(10,21,38),'view'=>10);
for($i=0;$i<count($t["typeid"]);$i++){
$n="view".$t["typeid"][$i];
$$n=$t['view'];
}
echo$view10,"<br/>";
echo$view21,"<br/>";
echo$view38,"<br/>";
你要的效果需要连续用两个$。