php_self是php的内置变量,记作$php_self,其作用是实现“页内跳转”。这里的页内跳转不同等于html的书签之类的跳转,而是php程序通过URL的尾参数的改变在同一个程序里提供不同的Web内容。试比较以下两个URL:
http://www.gxblk.com/pc/index.php
http://www.gxblk.com/pc/index.php?page=2
以上两个URL,其区别是第二个URL地址多一个参数(?page=2),我们在实际打开它们时,在浏览器中得到的内容是不一样的,而点击时它们在 同一页内跳转。这是使用php内置变量$php_self实现的,用户编写的php程序将根据index.php尾部参数的不同而生成不同的内容,但都使 用同一个网页程序(index.php),故我们称之为“页内跳转”,实际上,它生成的已经是另外一个Web文档了。
从上面第二个URL地址我们已经知道,内置变量$php_self用问号引导参数,具体表示格式如下:
$php_self?变量名=值 (实例:$php_sefl?id=0)
问号后面的变量名是自定义的,通常,根据需要命名为阅读性强一些的英文名称(可以是缩写)。比如说,我们让链接指向程序的某个功能块是完成一次删除 操作,那么,我们可以命名为$del,体现在代码里则是$php_self?del=值,如果点击了该链接,程序就执行删除操作(当然,删除操作代码得另 外编写):
链接代码:
print "<a href=\"$php_self?del=true\">删除选定内容</a>";
跳转代码:
if($del=="true") {
//这里是删除代码
}
$php_self可以带多个参数,第一个参数使用问题(?)引导,后面的参数使用“与”号(&)引导,格式和举例如下:
【语法】$php_self?变量1=值&变量2=值&变量3=值
【例子】$php_self?user=blackhorse&id=write&page=0
原则上,$php_self的尾部参数书写时应连在一起,但与号连接的变量可用空格或其他有效符号(如+号)隔开——有时我们的确需要将它们隔开,例如要想通过arv的验证,符号&会有些影响,隔开后生成的html代码才被arv所承认。
$php_self是php的一个十分有用的内置变量,通常用于分页、执行预定义操作等。它所带的尾部参数中的各变量在php中使用$来读取,如以下地址:
http://www.gxblk.com/pc/index.php?page=3
我们将这样从以上地址读取页码并显示该页面的内容:
$conts=echo_conts($page);
echo_conts是一个自编函数,它用于显示每一页的内容,而变量$page的值是关键所在,它决定程序从库文件中提取的内容范围。