扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:IT专家网 2010年8月18日
关键字:
我们将在本文中解释如何创建一个小型,高效的文件加载类,这其中有些与众不同的地方在于,由于实施了静态递归载入方法,我们不再需要产生大量实例来包括锁定文件。
用PHP创建能够加载指定文件的小型文件或资源对于许多程序员来说都是很容易的一件事情。但是,当你尝试向这些项目中添加有用特性时事情会变得更复杂,如递归文件搜索功能和异常处理功能等。这些都要求更多对象范例的相关知识以及掌握目前仅出现在PHP5中的性能。
文件加载类具备"load()"方法可以直接执行递归功能。然而,需要在此强调的是有必要创建给类的示例以便包含确定的文件,除非,在这些例子中,加载方法是被静态调用。通过php在服务器上写入文件
为了避免加载类的最终示例,我们可以声明所提及的"load()"方法的静态特性。因此,考虑到这一点,我们将"Loader"类的特性进行改进。想了解这些是如何在简单几个步骤里实现的吗?请看下文。
观察下列代码,注意它的定义:
< ?php
// define a recursive loader class
class Loader
{
private $file = '';
private $path = '';
// constructor (not implemented)
public function __construct(){}
// set file to load
public function set_file($file)
{
$this->file = $file;
}
// get file to load
public function get_file()
{
return $this->file;
}
// set path to load file
public function set_path($path)
{
$this->path = $path;
}
// get path to load file
public function get_path()
{
return $this->path;
}
// load recursively specified file
public function load($file, $path)
{
if (file_exists($file))
{
require_once($file);
return;
}
else
{
if (is_dir($path))
{
if (FALSE !== ($handle = opendir($path)))
{
// search recursively the specified file
while (FAlSE !== ($dir = readdir($handle)))
{
if (strpos($dir, '.') === FALSE)
{
$path .= '/' . $dir;
$file = $path . '/' . $this->file;
$this->load($file, $path);
}
}
}
closedir($handle);
}
}
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者