3

PHPクラスでこのエラーが発生しています...

致命的なエラー: 35 行目の C:\webserver\htdocs\friendproject2\includes\classes\User.class.php の書き込みコンテキストでメソッドの戻り値を使用できません

ここが困った部分です。

if(isset($this->session->get('user_id')) && $this->session->get('user_id') != ''){
    //run code
}

このコードは私のコントラストにあり、値がまだ $this->session->get('user_id') に設定されていない場合、Number の代わりに false を返します。ご覧のとおり、この値が数値であるかどうか、または設定されていないかどうかを確認したいと考えていました。

修正の助けをいただければ幸いです。

4

3 に答える 3

13

関数の結果にissetを使用することはできません。代わりに次のコードを検討してください。

if( $this->session->get('user_id') ){
    //run code
}
于 2010-01-17T00:24:58.363 に答える
13

isset() は、変数以外を渡すと解析エラーが発生するため、変数でのみ機能します。定数が設定されているかどうかを確認するには、 defined() 関数を使用します。

PHPマニュアルから。

于 2010-01-17T00:25:47.193 に答える
1

関数では使用できませんisset。ただし、false0、および''すべてが誤ったステートメントと同等であるため、次のようにテストを記述します。

if( $id = $this->sessions->get('user_id') ){
   // Will only run if $id does not equal '', False, or 0
}

このようにして、テストを実行し、変数を 1 つのステップで割り当てました。

于 2010-01-17T00:29:19.447 に答える