2016-09-03 4 views
2

私はMySQLとPHP7の学校プロジェクト用に設計しているウェブサイトのログインシーケンスを構築しています。私は何このエラーは手段と方法を、私はこの問題を解決することができますを理解するいくつかの助けが必要:PHP 7、致命的なエラー:定数式に無効な操作が含まれています

致命的なエラー:定数式がCで無効な操作が含まれています:\アビスWebサーバー\ htdocsに\ login_tools.php 19

ライン上

ここでログインが成功した保証し、関連するユーザーの詳細情報取得機能のためのコードの行です:あなたは、あなたが機能で、単一の二重引用符を使用掲示コードの行で見ることができるように

function validate($dbc, $email=",$pwd=") 
+2

2と各二重引用符を交換してください一重引用符。 –

+0

$ dbc、$ email = ''、$ pwd = ''を二重引用符ではなく二重引用符で置き換えて問題を解決しました。ありがとうございました。 –

+3

FYI、この特別なエラーメッセージが表示されるのは、 ''、$ pwd = "'は補間された文字列で、 ''、 ''と同等です。 $ pwd。 "=" '。これは動的な式なので、デフォルト値として使用することはできません。 – NikiC

答えて

1

は、宣言。よく見ると、あなたはそれを参照してくださいよ、PWD =は」理由は$の電子メールの後に、単一の二重引用符=

2つの単一引用符を二重引用符を変更したり、別の二重引用符を追加するのいずれかをすべて赤である。

function validate($dbc, $email='',$pwd='') 

OR

function validate($dbc, $email="",$pwd="") 
+0

私は何時間も問題を解決しようとしてきました!あなたの助けを借りてありがとうございます:) –

+0

答えが解決した場合は、おそらくそれを合格とマークしてください。 – Dave

+0

問題ありません、ありがとう! –

8

私はそれが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; 
} 

?> 
関連する問題