PHP 7, Fatal error: Constant expression contains invalid operations
PHP 7, Fatal error: Constant expression contains invalid operations
我正在为我正在为学校项目设计的网站构建登录序列 MySQL 和 PHP7(我比较陌生)。我需要一些帮助来理解此错误的含义以及如何解决该问题:
Fatal error: Constant expression contains invalid operations in
C:\Abyss Web Server\htdocs\login_tools.php on line 19
下面是确保登录成功并检索相关用户详细信息的函数代码行:
function validate($dbc, $email=",$pwd=")
从您发布的代码行可以看出,您在函数声明中使用了一个双引号。如果你仔细观察,你会发现 ,pwd=" 都是红色的,因为 $email=
之后的单双引号
将双引号更改为 2 个单引号或添加另一个双引号。
function validate($dbc, $email='',$pwd='')
或
function validate($dbc, $email="",$pwd="")
我认为对此错误消息的解释很有价值,因为它是 PHP 的新内容 7 - 为了清楚起见,让我们重新构造它:
<?php
function validate($dbc, $email="$foo"){
}
?>
作为初学者,您可能会发现 PHP 5.6 的错误消息对调试更有帮助:
PHP Parse error: syntax error, unexpected '"' in
/home/hpierce/test.php on line 3
但是 PHP 7 显示了您发现的错误:
Fatal error: Constant expression contains invalid operations in
/home/hpierce/test.php on line 3
当您声明一个可选参数时,就像您在 $email
中所做的那样,您需要提供一个字面值("constant expression")单独而不需要评估(通过使用 "invalid operations" 确定)。通过包含对 $foo
的引用,您已经使用此处无效的动态表达式声明了可选参数。
提供常量表达式的例子:
//Providing an integer literal
function validate($dbc, $email=1){}
//Providing a string literal
function validate2($dbc, $email="foo"){}
//Providing an array literal
function validate3($dbc, $email=Array("foo", "bar")){}
这个规则适用于任何需要定义常量表达式的情况,比如添加一个class常量:
<?php
class Foo
{
//Fatal error: Constant expression contains invalid operations
const BAR = $bar;
}
?>
我正在为我正在为学校项目设计的网站构建登录序列 MySQL 和 PHP7(我比较陌生)。我需要一些帮助来理解此错误的含义以及如何解决该问题:
Fatal error: Constant expression contains invalid operations in C:\Abyss Web Server\htdocs\login_tools.php on line 19
下面是确保登录成功并检索相关用户详细信息的函数代码行:
function validate($dbc, $email=",$pwd=")
从您发布的代码行可以看出,您在函数声明中使用了一个双引号。如果你仔细观察,你会发现 ,pwd=" 都是红色的,因为 $email=
之后的单双引号将双引号更改为 2 个单引号或添加另一个双引号。
function validate($dbc, $email='',$pwd='')
或
function validate($dbc, $email="",$pwd="")
我认为对此错误消息的解释很有价值,因为它是 PHP 的新内容 7 - 为了清楚起见,让我们重新构造它:
<?php
function validate($dbc, $email="$foo"){
}
?>
作为初学者,您可能会发现 PHP 5.6 的错误消息对调试更有帮助:
PHP Parse error: syntax error, unexpected '"' in /home/hpierce/test.php on line 3
但是 PHP 7 显示了您发现的错误:
Fatal error: Constant expression contains invalid operations in /home/hpierce/test.php on line 3
当您声明一个可选参数时,就像您在 $email
中所做的那样,您需要提供一个字面值("constant expression")单独而不需要评估(通过使用 "invalid operations" 确定)。通过包含对 $foo
的引用,您已经使用此处无效的动态表达式声明了可选参数。
提供常量表达式的例子:
//Providing an integer literal
function validate($dbc, $email=1){}
//Providing a string literal
function validate2($dbc, $email="foo"){}
//Providing an array literal
function validate3($dbc, $email=Array("foo", "bar")){}
这个规则适用于任何需要定义常量表达式的情况,比如添加一个class常量:
<?php
class Foo
{
//Fatal error: Constant expression contains invalid operations
const BAR = $bar;
}
?>