変なPHPエラー:'は使用できませんの関数の戻り値に書きテー
-
20-09-2019 - |
質問
もしかしたらこのエラーやまだひさしをはじめとする"頭または末尾ます。
の正確なエラーメッセージ:
致命的なエラー:使用できませんの関数の戻り値 価値の書きの文脈に /home/curricle/public_html/descarga/index.php イ48
線48:
if (isset($_POST('sms_code') == TRUE ) {
誰もが知っていかがでしょうか。??
PSまでのフル機能の場合です:
function validate_sms_code() {
$state = NOTHING_SUBMITED;
if (isset($_POST('sms_code') == TRUE ) {
$sms_code = clean_up($_POST('sms_code'));
$return_code = get_sepomo_code($sms_code);
switch($return_code) {
case 1:
//no error
$state = CORRECT_CODE;
break;
case 2:
// code already used
$state = CODE_ALREADY_USED;
break;
case 3:
// wrong code
$state = WRONG_CODE;
break;
case 4:
// generic error
$state = UNKNOWN_SEPOMO_CODE;
break;
default:
// unknown error
$state = UNKNOWN_SEPOMO_CODE;
throw new Exception('Unknown sepomo code: ' . $return_code);
break;
}
} else {
$state = NOTHING_SUBMITED;
}
dispatch_on_state($state);
}
解決
あなたが意味する
if (isset($_POST['sms_code']) == TRUE ) {
ちなみに、あなたが本当に意味のに
if(isset($_POST['sms_code'])) {
他のヒント
関数の戻りの空使用する場合にも起こります:
!empty(trim($someText)) and doSomething()
空の関数が、言語構造(わからない)ではない、それが唯一の変数がかかるため
右ます:
empty($someVar)
間違ってます:
empty(someFunc())
PHP 5.5ので、変数以上のものをサポートしています。しかし、あなたは5.5の前にそれを必要とする場合、trim($name) == false
を使用しています。 をrel="noreferrer"> href="http://php.net/manual/en/function.empty.php"ます。
if (isset($_POST('sms_code') == TRUE ) {
タグに次の行を変更します
if (isset($_POST['sms_code']) == TRUE ) {
あなたは$_POST
ためparentheseisを()を使用しているが、あなたは角括弧[]
:)
または
if (isset($_POST['sms_code']) && $_POST['sms_code']) {
//this lets in this block only if $_POST['sms_code'] has some value
のための WORDPRESS:
代わりに:
if (empty(get_option('smth')))
き
if (!get_option('smth'))
正しい構文(あなたが最終的に不足している括弧を持っていた):
if (isset($_POST['sms_code']) == TRUE ) {
^
p.s。あなたはブール(真/偽)すでに返されるため、== TRUE
の一部を必要といけない。
これは、複数のシナリオで発生することができ、以下のよく知られたシナリオのリストがあります:
// calling empty on a function
empty(myFunction($myVariable)); // the return value of myFunction should be saved into a variable
// then you can use empty on your variable
//配列の要素にアクセスするために括弧を使用して、括弧の機能を呼び出すために使用されている
if (isset($_POST('sms_code') == TRUE ) { ...
// that should be if(isset($_POST['sms_code']) == TRUE)
私たちは以下のような関数の結果をインクリメントしようとすると、このもトリガすることができます:
$myCounter = '356';
$myCounter = intVal($myCounter)++; // we try to increment the result of the intVal...
// like the first case, the ++ needs to be called on a variable, a variable should hold the the return of the function then we can call ++ operator on it.
問題は、あなたが()
を行かなければならない[]
である
if (isset($_POST('sms_code') == TRUE)
による
if (isset($_POST['sms_code'] == TRUE)
私はまた、あなたのような同様の問題がありました。問題は、古いPHPのバージョンを使用していることです。私はPHP 5.6にアップグレードしていないとの問題はもはや存在します。
このエラーが原因構文エラーがトリガされた別のシナリオます:
ucwords($variable) = $string;
私も、構文エラーが原因この問題に遭遇しました。配列インデックスに代わりに「[」の「(」を使用して
foreach($arr_parameters as $arr_key=>$arr_value) {
$arr_named_parameters(":$arr_key") = $arr_value;
}