我试图创建一个我可以调用的函数,如下所示,
view( 'archive', 'post.php' );
Run Code Online (Sandbox Code Playgroud)
而这个功能真正起作用的是什么.
include( 'view/archive/post.php' );
Run Code Online (Sandbox Code Playgroud)
这样做的原因是,如果将来我将目录扩展为view/archive/another_level/post.php我不想在我的代码中回到任何地方并更改所有包含路径.
目前这是我的功能,除了看起来include是在函数内部调用,而不是在调用函数时被调用...
function view( $view, $file )
{
switch ( $view )
{
case 'archive' : $view = 'archive/temp'; break;
case 'single' : $view = 'single'; break;
}
include( TEMPLATEPATH . "/view/{$view}/{$file}" );
}
Run Code Online (Sandbox Code Playgroud)
如何才能使此功能正确包含该文件?
编辑:
没有显示错误.感谢@Ramesh的错误检查代码,ini_set('display_errors','On')我能够看到包含文件中还有其他"未显示"错误,这似乎导致文件无法显示...
这是解决问题的一种方法:
改变你调用函数的方式,看起来像这样:
include( view('archive','post') );
Run Code Online (Sandbox Code Playgroud)
你的功能看起来像这样:
<?php
function view( $view, $file )
{
switch ( $view )
{
case 'archive': $view = 'archive/temp'; break;
case 'single' : $view = 'single'; break;
}
return TEMPLATEPATH . "/view/{$view}/{$file}";
}
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13067 次 |
| 最近记录: |