使用PHP一些代码,我遇到了一些代码,基本上检查相同的变量是否为空两次:
if ( !empty( $_GET[ 'branch' ] ) ) {
$branch = $_GET[ 'branch' ];
}
if ( empty( $branch ) ) {
_output( 'Error: no branch specified!' );
exit( 1 );
}
Run Code Online (Sandbox Code Playgroud)
知道为什么这样设置吗?与使用相比else,有什么优势,比如:
if ( !empty( $_GET[ 'branch' ] ) ) {
$branch = $_GET[ 'branch' ];
} else {
_output( 'Error: no branch specified!' );
exit( 1 );
}
Run Code Online (Sandbox Code Playgroud)
它不检查相同的变量是否为空. $branch不一定$_GET['branch']在这个代码中,第一个检查是检查是否$_GET['branch'] 为空.
在整个代码中,很可能至少有一个其他条件$branch被设置.这很可能是最后一个条件,因此最终检查是否$branch已设置.可能有更好的方法来解决这个问题,但没有看到整个代码,我无法告诉你.
根据您在下面的评论,这是同样的事情,甚至更简单:
$branch = $_GET[ 'branch' ];
if ( empty( $branch ) ) {
_output( 'Error: no branch specified!' );
exit( 1 );
}
Run Code Online (Sandbox Code Playgroud)
为什么如果在所有上使用$_GET['branch'],如果$branch只能是$_GET['branch']?
更好的是,您可以使用三元运算符来设置默认分支并避免出错的可能性.
$branch = (empty($_GET['branch'])) ? DEFAULT_BRANCH : $_GET['branch'];
Run Code Online (Sandbox Code Playgroud)