//
function circles_compute_area($circle)
{
return $circle["Radius"] * $circle["Radius"] * pi();
}
function circles_compute_circumference($circle)
{
return 2 * $circle["Radius"] * pi();
}
// $circle is passed in BY REFERENCE and modified!!!
function circles_move_circle(&$circle, $deltax, $deltay)
{
$circle["X"] += $deltax;
$circle["Y"] += $deltay;
}
?>
3.2.2 选择文件名和位置
为了防止web用户打开.inc文件,我们使用两种机制防止这种情况发生,首先,在构成文档目录树中,我们确保web服务器不允许用户浏览或者加载
不希望他们进行这些操作,在16章保护web应用程序中介绍,然后,然后将配置浏览器允许用户浏览.php和.html文件,但是不能浏览.inc文件
防止这种问题的第二个途径不把代码入在文档树中,或存入其它目录,并且要么明确地在我们的代码中引用这个目录,通知php总是查看这个目录
3.2.3 在脚本中包含库文件
include 和require,这两个区别在于,当找不到文件时,require输出错误,而include输出警告。
<?php
include('i_dont_exit.inc');
require('i_dont_exit.inc');
?>
include和require在哪里查找文件
你可以指定明确的路经:
require("/home/httpd/lib/frontend/table_gen.inc');
require('http://www.cnblogs.com/lib/datafuncs.inc');
require(d:webappslibsdataconnetions.inc');
如果没有指定明确路径,php就在当前目录中查找要包含的文件,然后查找php.ini文件中的include_path设置中列出的目录.
在windows是include_path=".;c:phpinclude;d:webappslibs“设置完成后,不要忘记重新启动web服务器。
include和require做了什么
包含在脚本标记中的任何内容都作为一般 php脚本处理。
清单3-1和清单3-2显示php脚本和用于包含的简单文件
清单3-1
3.2.4 把包含用于页面模板化
<p align='center'>
<b>
<?php echo $message; ?>
</b>
</p>
清单3-2
<html>
<head>
<title>Sample</title>
</head>
<body>
<?php
$message = "Well, Howdy Pardner!";
include('printmessage.inc');
?>
</body>
</html>
文件包含和函数范围
当把函数从脚本移动到包含文件时,会如何影响函数作用范围及调用它们的能力。
如果一个函数在另一个文件中,并且这个文件没有通过include和require包含在当前脚本中,那么调用是非法的
为了避免这个问题,在脚本开头包含其他文件是个好主意。
当共享变成问题时
为了避免重复加载共享文件,可以用require_once()和include_once()语言结构防止函数或者结构重复定义的问题







