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)
页面执行时间:4.204毫秒