require()和include()几乎一样。唯一的区别在于函数失败后,require()函数将给出一个致命的错误。而include()只是给出一个警告。
这两个函数都有一个变体,require_once(),include_once()。
php不会查看所需文件的扩展名。这意味着,只要不想直接调用这个文件,就可以任意命名该文件。
如果扩展名为.inc或一些其他的非标准扩展名的文件保存在Web文档树种,而且用户可以直接在浏览器中直接载入它们,用户将可以以普通文本的形式查看源码包,包括任何密码。因此,将被包含文件保存在文档树之外,或使用标准的文件扩展名是非常重要的。
readfile():直接回显文件内容,不会对其进行解析。
可以在php.ini文件中配置auto_prepend_file和auto_append_file来将页眉和脚注添加到每个页面中。如果文件不存在,会产生一个警告。不推荐使用。
函数:
函数调用时不区分大小写。变量名称则区分。
可通过函数来获取函数调用时的参数:func_num_args()、func_get_arg()、func_get_args()。
变量作用域规则:
l 函数内部声明的变量作用域是从声明的地方开始到文件末尾。这叫做函数作用域。这些变量称为局部变量。
l 在函数外部声明的变量作用域是从声明的地方开始到文件末尾,而不是函数内部。这叫做全局作用域。这些变量称为全局变量。
l 特殊的超级全局变量在函数内部和外部都是可见的。
l 使用require()和include()不影响作用域。如果这两个语句用于函数内部,函数作用域适用。如果不在函数内部,全局作用域适用。
l 关键字global可以用来手动指定一个在函数中定义域使用的变量具有全局作用域。
l 通过调用unset($variable_name)可以手动删除变量。如果变量被删除,它就不在参数所指定的作用域中了。
参数的引用传递:可以在函数定义部分加&,也可以在调用时加&。
function add(&$src,$step) { $src+=$step; } $b=2; add($b,2); //等价于下面的形式 function add($src,$step) { $src+=$step; } $b=2; add(&$b,2); |
慎用递归。