在PHP中初始化空字符串的正确方法是什么?

2022-08-30 17:08:04

在C#中,我采用了以下初始化空字符串的方法:

string account = string.empty;

而不是

string account = "";

根据我的导师和我与之交谈过的其他 C# 开发人员的说法,第一种方法是更好的实践。

也就是说,有没有更好的方法来初始化PHP中的空字符串?目前,我看到以下被广泛使用:

$account = '';

谢谢。


答案 1

你正在做的事情是正确的。没什么可说的了。

例:

$account = '';

if ($condition)  $account .= 'Some text';

echo  $account;

你可能会变得愚蠢,做这样的事情:

$str = (string) NULL;

..但这完全没有意义,而且完全是一回事 - 一个空字符串。

你做对了。


答案 2

在大多数情况下,这是无关紧要的。与许多语言不同,在PHP中,它是否初始化变量(通常)并不重要。PHP 将自动强制转换一个未初始化(甚至未声明)的变量,以适合立即使用。例如,以下各项都是正确的:

$a;
$a + 7; // Evaluates to 7
$a . "This is a test."; // Evaluates to "This is a test."
if (! $a) {}  // Evaluates as true

需要注意的是,选择函数检查变量类型(严格的相等性检查 ===) 也是如此)。例如,以下操作将失败:

$a;
if (is_string($a)) {
    print 'success';
}
else {
    print 'fail';
}

不过,这种便利性需要付出沉重的代价。与严格类型化(或至少“更严格”类型化)语言不同,核心语言本身没有任何内容可以帮助您捕获常见的程序员错误。例如,以下内容将愉快地执行,但可能不符合预期:

$isLoggedIn = getLoginStatus($user);
if ($isLogedIn) {
    // Will never run
    showOrder($user);
}
else {
    showLoginForm();
}

如果选择初始化所有变量,请像初始化一样进行初始化。但随后启用 PHP 通知(E_NOTICE)以获取有关未初始化变量的运行时警告。如果你不这样做,你基本上是在浪费时间和击键初始化你自己的变量。


推荐