是否可以使用内部函数/方法或其他内容来中断循环?
假设此代码:
do {
$page = $this->get_page($this->profile_link . '&page=' . $page_count);
if ($this->pageNotExists($page, 'has no public')) {
break;
}
$links = array_merge($links, $this->get_videos_from_given_page($page));
$page_count++;
} while (1);
我想接受这一部分:
if ($this->pageNotExists($page, 'has no public')) {
break;
}
从这个可重复使用的方法/功能或其他会在这里打破的东西。
我只是不喜欢这部分代码。
我还有其他使用相同代码部分的方法。这是代码重复,我不喜欢它。
因此可以将此代码提取到函数/方法或其他内容,将其从此处取出
if ($this->pageNotExists($page, 'has no public')) {
break;
}
虽然仍然有相同的结果并且所有工作都一样吗?
答案 0 :(得分:-1)
程序外部的break语句(例如,不在控件循环中)将结束脚本。当我错误地在if语句中休息时,这引起了我的注意
即
<?php
echo "hello";
if (true) break;
echo " world";
?>
只会显示&#34;你好&#34;
答案 1 :(得分:-1)
没有办法直接完成你要求的东西。代码的流程应该清楚。除非它抛出异常,否则函数不应该能够中断它。
您可能希望将逻辑直接移动到循环条件中。
while ($page = $this->getPageByPageCount($page_count)) {
...
}
将getPageByPageCount
定义为:
private function getPageByPageCount($page_count) {
$page = $this->get_page($this->profile_link . '&page=' . $page_count);
if (!pageCheck($page)) {
return null;
}
return $page;
}