我可以使用" if"使用" else"的声明没有花括号的部分?

时间:2015-03-01 12:29:22

标签: php github webhooks

我正在尝试查看曾经在我们组织中执行的代码,现在他已经离开,没有人可以帮助我。 我们在服务器中有一个自动部署PHP脚本,以帮助我们在推送时将服务器与github同步(webhooks)。 它过去工作正常,但突然停止工作...... 由于我对这种程序的经验很少,我发现服务器中的PHP代码应该在github中进行推送时工作,基本上它应该完成自动部署的整个过程。 问题是我查了一下代码,发现了一些奇怪的东西;

if ($payload->ref === 'refs/heads/development')
{   echo 'received updated in dev branch; bash/deploy_frontend2dev.sh ';
    exec('sh /var/www/html/bash/deploy_frontend2dev.sh', $output);
    var_dump($output);
}
else 
echo 'smth is called';

" else"这里没有任何花括号。我知道有办法做一个"如果"没有大括号的声明,但是它只使用了一部分没有大括号吗?

如果您希望这是来自" exec":

的代码
cd /var/www/html/ezmob-frontend/;
#echo "/var/www/html/ezmob-frontend/";

git pull origin development;
echo "pulling file from dev branch";

rm -R ../dashboard;
echo "dashboard is updated";

unzip ezmob-frontend-built.zip -d ../;
#echo "dashboard is updated";

chmod 777 -R dashboard;

请注意,我们在工作时没有做任何改变,但仍然突然停止自动部署......

感谢。

3 个答案:

答案 0 :(得分:0)

一般情况下,是的,你可以使用没有花括号的else。但这正是为了避免你现在遇到的困惑,你应该考虑总是用花括号包裹你的ifs和elses。

这是一场永无止境的讨论,所以请自己做出决定。这就是为什么我认为你应该:

这就是我认为这是个好主意的原因。但每一个他自己。你应该选择你认为最好的东西。

答案 1 :(得分:0)

如果ELSEIF和ELSE可以在没有大括号的情况下使用。

if ($foo) :
    echo 'ok';
elseif ($bar) :
    echo 'ok';
else :
    echo 'nono';
endif;

如果您在IF,ELSEIF或ELSE中只有一行代码,那么您可以这样做:

if ($foo)
    echo 'ok';
elseif ($bar)
    echo 'ok';
else
    echo 'nono';

答案 2 :(得分:0)

ifelse接受一段代码,该代码块可以是包含在{}或单个语句中的一系列语句。

您可以使用

if
  one-statement-ending-in-semi-colon;

if {
   many-statements;
   each-ending-in-semi-colons;
}