require()一般用于引入文件,然而,它居然还可以有返回值:
$r = require('config.php');
当然,config.php需要像方法一样给出返回值:
return array(
'charset' => 'utf-8',
'app_name'=> 'php fun'
);
?>
这样我们就可以方便读取config.php中的内容了。在上面的例子中,require()返回的就是:
array(
'charset' => 'utf-8',
'app_name'=> 'php fun'
);
这样子有什么用呢? 例如,我们需要将配置信息放在单独的文件里,可以创建一个config.txt文件:
charset=utf-8,app_name=php fun
PHP可以这样读取:
$r = file_get_contents('config.txt');
$arr = explode(',',$r);
$charset_arr = explode('=',$arr[0]);
$charset = $charset_arr[1];
...
可以,没问题,可是却变得麻烦了。而且有个严重的问题,不安全,txt文件可以被别人下载,如果你存储了数据库账号等信息,那就糟糕了。 如果用php文件存储,再用require()读取,就可以解决这个安全问题,而且,不需要额外解析数据。