All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
如何平衡营销型网站的用户体验设计和优化_优化技巧_seo学堂
C#中Windows通用的回车转Tab方法_[Asp.Net教程]
用sql存储过程实现前台标题变色_[SQL Server教程]
PHP取得当前插入数据库中记录的id值_php资料_编程技术
ASP.NET,2.0服务器控件之复合控件事件_[Asp.Net教程]
PHP数组的定义、初始化和数组元素的显示_php资料_编程技术
MIS开发中.net,Framework的打印功能_.net资料_编程技术
动态控件添加终极解决方案_[Asp.Net教程]
怎样从ASP.NET,2.0中读取连接字符串的设置_[Asp.Net教程]
delphi设置光标闪烁的速度
Reading number is top 10 pictures
The money of more than 100 countries and regions19
影评-疯子,我爱你
9.3阅兵全景图1-抗战老兵和英雄连队梯队
Summer is most suitable for young people to travel in China7
你白吃了多少药
这是男生笨么?
Female model behind the bitterness, often being overcharged2
全身蕾丝丝质美臀
宝贝系列
原子弹轰炸长崎的珍贵照片
Download software ranking
网络管理员第三版
虚拟机汉化软件
小黑猫大战两米大花蛇
Kung.Fu.Panda.2
豪门浪荡史
Boxer Classic video3
Tram sex maniac 2 (H) rar bag16
apache-tomcat-6.0.33
Tram sex maniac 2 (H) rar bag15
VC++6.0简体中文版
归海一刀 published in(发表于) 2014/2/17 7:25:58 Edit(编辑)
PHP入门:在PHP关于变量的使用介绍_[PHP教程]

PHP入门:在PHP关于变量的使用介绍_[PHP教程]

PHP入门:在PHP关于变量的使用介绍_[PHP教程]

就像大部份的结构化程序,有所谓的全局变量与局部变量,php 在这方面也是有相同的处理方式。


在 php 的程序执行时,系统会在内存中保留一块全局变量的区域。实际运用时,可以透过 globals["变量名称"] 将需要的变量取出。在用户自定的函数或程序中,就可以用 globals 数组取出需要的变量。当然别忘了 php 的变量有分大小写,搞错了大小写可是叫一百年,变量也不会出来。


globals 数组是 php 程序中比较特殊的变量,不必定义,系统会自动匹配相关的变量在里面。在函数中,也不必管 globals 数组是否已经做全局定义,就可以直接使用了。


和 globals 变量类似的还有 php_errormsg 字符串变量。若 php 的配置文件 (php.ini/php3.ini) 中的 track_errors 选项打开的话,会有全局变量 php_errormsg 可以看到错误的信息。


在 php 中,全局变量的有效范围 (scope) 仅限于主要程序中,不会影响到函数中同名的变量,也就是全局变量与局部变量互不侵犯。若要变量能通透到函数中,就要用到 globals 数组或是使用 global 定义。


例如,在自行开发的函数中,要取得目前执行 php 程序页面的文件名,就可以用 globals["php_self"] 取出 php_self 的值。


// 本程序使用 globals 数组
function myfunc() {
echo globals["php_self"];
}
myfunc();
?>


下面是错误的示范,请勿模仿,上面的才是正确的示范。


// 这是错误的示范
function errfunc() {
echo php_self;
}
errfunc();
?>


但是这个错误的示范要是改成下例就没问题了


// 本程序使用全局定义
function myfunc() {
global php_self;
echo php_self;
}
myfunc();
?>


在变量前面加上 global 的名称,就是定义该变量为全局变量。用这种方式,就不需使用 globals 数组,也能让变量进入自行开发的函数中。


接下来先看静态变量的例子


// 静态变量的例子
function myfunc() {
static mystr;
mystr.="哈";
echo mystr."
\n";
}
myfunc(); // 哈
myfunc(); // 哈哈
myfunc(); // 哈哈哈
?>


函数在执行时所产生的变量,在函数结束时就消失了,有时因为程序的需要,函数在循环中,当不希望变量在每次执行完函数就消失的话,静态变量 (static variable) 就派上用场了。上例中,使用 mystr 变量之前,先在变量前面加上 static,即表示变量 mystr 是静态变量,当每次执行 myfunc() 函数时,mystr 的值会一直增加,每执行一次就多一个哈字。若将 static 的静态变量定义拿掉,就没办法累加哈字了。


// 不是静态变量的例子 (错误的)
function myfunc() {
mystr.="哈";
echo mystr."
\n";
}
myfunc(); // 哈
myfunc(); // 哈
myfunc(); // 哈
?>


再看一个比较实际的例子,它是处理表格的颜色,让隔行的颜色不同。


function tdbackcolor() {
static colorstr;
if (colorstr=="808080") {
colorstr="c0c0c0";
} else {
colorstr="808080";
}
return(colorstr);
}
echo "
\n";
for (i=0; i<10; i++) {
colorstr=tdbackcolor();
echo "
这是第".i."行
\n";
}
echo "
";
?>


php 的变量使用技巧上,最令人觉得不可思议的则是变量的变量 (variable variable)。这是充分利用 php 特性玩出的特殊技巧


a = "hello";
a = "world";
echo "a, hello"; // hello, world
echo "a, {a}"; // 也是 hello, world
?>


mdean@kcnet.com 举出一个更绝的例子 (24-apr-1999),他称为变量的函数 (variable function)


function mycallbackfunction()
{
print("hello from callback");
}
function myfunction(callback)
{
callback();
}
// call to myfunction passing callback
// function as parameter
myfunction("mycallbackfunction");
?>


至于用户在 form 中输入的资料,要怎么处理呢?要是在 php 的配置文件中,track_vars 设为 on 时,直接使用变量名字就好了。如下例,next.php 在执行时,系统会自动产生两个变量 username 及 sex,直接使用就好了,比起传统的 cgi 要自己解析,php 实在是太神奇了。



姓名:

性别:



由于 php 许多语法都是 c 语言的翻版,故 php 在使用变量时,随时都可以使用新的变量,只要在使用前将变量初始化就好了,不必像 pascal 语言那样严谨,所有要使用的变量都要事先定义。这当然有好处与坏处:好处是使用方便、自由;坏处就是常常因这些自由而付出相当大的代价调试。在程序码短的 php 程序当然不成问题,当程序在数百数千行,甚至 include 或 require 好几层之后,问题就浮现出来了。无论如何,保持良好的写作习惯才是避免浪费青春的方法。







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.