在PHP中初始化空字符串的正确方法是什么?
2022-08-30 17:08:04
在C#中,我采用了以下初始化空字符串的方法:
string account = string.empty;
而不是
string account = "";
根据我的导师和我与之交谈过的其他 C# 开发人员的说法,第一种方法是更好的实践。
也就是说,有没有更好的方法来初始化PHP中的空字符串?目前,我看到以下被广泛使用:
$account = '';
谢谢。
在C#中,我采用了以下初始化空字符串的方法:
string account = string.empty;
而不是
string account = "";
根据我的导师和我与之交谈过的其他 C# 开发人员的说法,第一种方法是更好的实践。
也就是说,有没有更好的方法来初始化PHP中的空字符串?目前,我看到以下被广泛使用:
$account = '';
谢谢。
你正在做的事情是正确的。没什么可说的了。
例:
$account = '';
if ($condition) $account .= 'Some text';
echo $account;
你可能会变得愚蠢,做这样的事情:
$str = (string) NULL;
..但这完全没有意义,而且完全是一回事 - 一个空字符串。
你做对了。
在大多数情况下,这是无关紧要的。与许多语言不同,在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)以获取有关未初始化变量的运行时警告。如果你不这样做,你基本上是在浪费时间和击键初始化你自己的变量。