打破一个include(包含)

3
当你想要省略循环的剩余部分时,可以编写一个break语句。
是否有一些可以编写的内容来省略包含文件的剩余部分(但不像使用die或exit时终止应用程序的其余部分)?

@middaparka,这是针对一种特定类型的文件,它们被默认包含在它们所在的环境中。有时候并不需要执行这些文件中的所有代码,这就是我想要的原因。 - Emanuil Rusev
@Emanuil 听起来你只需要根据当前活动页面等将相关部分包装在一个 if 块中。 - John Parker
@Emanuil 我认为将相关内容封装在一个函数/方法中,然后简单地调用该函数/方法会更加整洁。 (如果需要,所有这些都可以发生在所包含的文件内。) - John Parker
@middaparka,假设你有一个函数 foo($value) ,仅在 $value 不为 null 时执行。你有两种明显的处理方式。[1] if($value !== null){ // 所有可能相当多的代码 } 或 [2] if($value === null) return。你会选择哪一种? - Emanuil Rusev
@Emanuil,这取决于函数/方法合理默认值是什么。(我会先处理“默认”情况)。然而,如果你在为性能原因而担心哪个要先放置,那就不用担心了。节省的时间微不足道——代码的可读性和可维护性更加重要。 - John Parker
显示剩余2条评论
2个回答

7
您可以使用 return 语句退出已包含的文件,并可选择返回一个值。
例如:
<?php
// file1.php:

$value = include('file2.php');
echo $value;

这包括:

<?php
// file2.php:
if($_REQUEST['something'] == 'something else')
  return 'Something else';

//do some stuff if _REQUEST['something'] != 'something else'

return 'something';

显然这只是一个无用的例子,但它演示了使用returninclude()的文件中退出。

2
太棒了!我差点以为做不到,但结果发现有这样一个优雅的解决方案。我很高兴我问了这个问题。 - Emanuil Rusev
1
+1。不过,为了良好的形式和普遍的健康,请关闭您的PHP标签。 - Lightness Races in Orbit
1
@Tomalak:对于仅包含PHP代码的文件,我总是省略结尾的PHP标签。这也是ZendDrupal的标准做法。 - Josh

1
你可以将你的include文件分成两个独立的文件,然后根据需要分别引用这两个文件,而不是只引用一个。或者可能只需要引用一个文件,然后让这个文件在需要时引用第二个文件。

你也可以使用 if 语句在包含的文件中构建你的代码... 处理这个问题有很多不同的方法。 - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接