第十三节:控制结构-delcare-return-require-include-require_once-include_once-goto
return
如果在一个函数中调用return语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return()也会终止eval()语句或者脚步文件的执行。
如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被include()或者require()的,则控制交回调用文件。此外,如果当前脚本是被include()的,则return()的值被当作include()调用的返回值。
require和include
require和include唯一的区别就是,处理失败的方式不同。include()会产生一个Warning警告,而后继续执行,而require()会产生一个致命错误,而后终止执行。
1 <?php 2 include 'a.php'; 3 echo 'abc'; 4 ?> 5 <?php 6 require 'a.php'; 7 echo 'abc'; 8 ?>
第一个还会输出abc,而第二个不会,另外include和requier不是函数,是语言结构,不需要括号。(理论上速度会更快)
特别是在比较值时,别加括号!
1 <?php 2 if((require 'other.php')=='OK') 3 echo 'OK'; 4 ?>
include_once和require_once
他们同include和require基本相同唯一区别在于如果已经包含文件了,不会再次包含,如果包含成功会返回true。
PHP4中在大小写不敏感的操作系统如window
1 <?php 2 include_once "a.php"; // this will include a.php 3 include_once "A.php"; // this will include a.php again on Windows! (PHP 4 only) 4 ?>
PHP5 会对路径事先格式化,所有还是可以区分。
goto
goto是PHP5.3后加入的新属性,用作于跳转到程序的某一个位置。该目标位置可以用目标名称,加上冒号来标记。PHP中的goto有一定限制,只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数中。你也无法跳入任何循环或者switch结构中。常用的用法是用来跳出循环或者switch,可以代替多层的break。
1 <?php 2 $i=1; 3 while(++$i): 4 if($i=='5'): 5 goto end; 6 endif; 7 endwhile; 8 end: 9 echo $i; 10 ?>
貌似我的dreamweaver cs5不支持这个语法,以上代码SAE测试成功。