没有$的变量,可以吗?

deb*_*deb 6 php variables parsing syntax-error

是否有可能在不使用$的情况下引用变量?

例如:

if ($a != 0 && a == true) {
...
}
Run Code Online (Sandbox Code Playgroud)

我不这么认为,但代码(不是我写的)没有显示错误,我认为这很奇怪.我忽略了代码,也不是常量.

Mic*_*ski 9

在PHP中,可以定义一个常量,它不会有一个$,但变量必须有一个.但是,这不是变量,也不是变量的替代品.常量只需定义一次,并且在脚本的整个生命周期内不会更改.

define('a', 'some value for a');
Run Code Online (Sandbox Code Playgroud)

此外,您不能在双引号或HEREDOC字符串中插入常量的值:

$a = "variable a"
define('a', 'constant a');

echo "A string containing $a";
// "A string containing variable a";

// Can't do it with the constant
echo "A string containing a";
// "A string containing a";
Run Code Online (Sandbox Code Playgroud)

最后,PHP可能会发出通知Use of undefined constant a - assumed 'a'并将其解释为错误的未加引号的字符串"a".查看错误日志以查看是否发生了这种情况.在这种情况下,"a" == TRUE有效,因为字符串"a"是非空的,并且它与布尔值TRUE松散地比较.

echo a == TRUE ? 'true' : 'false';
// Prints true
// PHP Notice:  Use of undefined constant a - assumed 'a'
Run Code Online (Sandbox Code Playgroud)