Linux 版 (精华区)
发信人: tcpip (俺的昵称改了), 信区: Linux
标 题: PHP3特有的语言特点(转寄)
发信站: 哈工大紫丁香 (Mon Nov 29 12:23:34 1999), 转信
发信人: yyh (阿欢&正在努力上进中......), 信区: Linux
标 题: PHP3特有的语言特点
发信站: BBS 水木清华站 (Sun Nov 28 20:14:39 1999)
PHP3是一种非常强大的CGI脚本语言,就其语言特点基本上源于C,就其实现
方式而言更象PERL,而其对数据库的内在支持更使之成为ASP的强大对手。
这里先简要介绍一些PHP3中比较容易弄错的语言特点(与C语言相比较)。
1.自动屏蔽的全局变量在函数中的使用
不同于C语言,PHP3中的全局变量在函数中是默认不起作用的,
比如
<?
$a = 1;
function test()
{
print $a; // 变量 $a 未定义
}
test();
print $a;
?>
输出的结果不是预想中的“1 1”, 而只有一个“1”。因为
全局变量$a在函数里不存在,test函数里的$a无定义,因此不
显示,如果要使用全局变量必须用global声明,如
<?
$a = 1;
function test()
{
global $a;
print $a;
}
test();
print $a;
?>
或通过全局变量数组($GLOBALS[])来直接使用,如
<?
$a = 1;
function test()
{
print $GLOBALS["a"];
}
test();
print $a;
?>
2.奇妙的变量访问机制
PHP3里的变量名允许嵌套定义,如先定义一个$a="hello",然后可以用$$a="world"
来访问$hello,最后变成$a="hello", $hello="world"。这里的$操作符有点象C语言
里的*,但$是以名字(字符串)链接,而*是以地址链接的。如
<?
$a = "hello"; // 注意不能有空格
$$a = "world";
$$$a = "!";
print $a; // 显示 hello
print $hello; // 显示 world
print $world; // 显示 !
?>
另外PHP3还提供了用字符串做数组下标建立和访问数组的方法,如前面用到的全局
变量数组就是以这种机制访问的,如
<?
$a["first"] = "second";
$a["second"] = "third";
$a["third"] = "first";
print $a["first"]; // 显示 second
print $a[$a["second"]]; // 显示 first
print $a[$a[$a["third"]]];// 显示 third
?>
3.强大的分块方法
在C里面一个语句块可以用 { } 来标出,在 DELPHI 里则是 BEGIN END。而在 PHP3 里
更可以用一个":"将一段语句独立成块,这样做的好处不言自明。如
<?
$date=getdate(time());
if($date["hours"] < 12):
?>
<H1>Good morning!</H1>
<?
elseif($date["hours"] < 18):
?>
<H1>Good afternoon!</H1>
<?
else:
?>
<H1>Good evening!</H1>
<?
endif;
?>
while语句也支持类似的分块方法,如
$a=5;
while($a-- > 0):
?>
<H1>print a line</H1>
<?
endwhile;
?>
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 162.105.17
.237]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.105毫秒