在调用方法的不良做法中声明变量


Is declaring a variable inside of calling a method bad practice?

如果我调用一个接受参数然后同时定义变量的方法,这会被认为是"不好的做法"吗?

例:

if( file_exists( $file = "skins/Default/Controllers/Demo.php" ) )
{
    require( $file );
}

我觉得它使事情变得更容易,因为它不需要在上面创建另一个变量,也不会通过编写两次字符串来使代码混乱。

在调用方法的过程中声明变量是不是一种不好的做法吗?

是的,因为它隐藏了其他功能背后的意图。

$file = "skins/Default/Controllers/Demo.php";
if (file_exists($file)) {
    require($file);
}

比以下更容易阅读和推理:

if (file_exists($file = "skins/Default/Controllers/Demo.php")) {
    require($file);
}

因为它很容易被误认为是$file == "skins/Default/Controllers/Demo.php",这在if语句中很常见。

它可能

被认为是不好的做法,因为它降低了代码的可读性(=>可维护性)。

$file = "skins/Default/Controllers/Demo.php";
if( file_exists( $file ) )
{
    require( $file );
}

更具可读性