私はそれが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
のようにオプションの引数を宣言すると、評価する必要がなく、単独で立つリテラル値("定数式")を提供する必要があります("無効な操作")。 $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")){}
このルールは、あなたがそのようなクラスの定数を追加するなど、定数式を、定義する必要がどのような状況に適用されます。
<?php
class Foo
{
//Fatal error: Constant expression contains invalid operations
const BAR = $bar;
}
?>
2と各二重引用符を交換してください一重引用符。 –
$ dbc、$ email = ''、$ pwd = ''を二重引用符ではなく二重引用符で置き換えて問題を解決しました。ありがとうございました。 –
FYI、この特別なエラーメッセージが表示されるのは、 ''、$ pwd = "'は補間された文字列で、 ''、 ''と同等です。 $ pwd。 "=" '。これは動的な式なので、デフォルト値として使用することはできません。 – NikiC