2016-03-30 10 views
0

私はサードパーティ製のPHPバイナリを使ってチャットサーバーを実装しています。 は、PHPのバイナリでは、PHPクラスの大部分は、私のPHPクラス内の1つの以上のライン$db = Db::getInstance();があるだけでライン$list=$list[0]上記のコードPHP空の配列の減速の投げエラー

$list = $list[0]; 

の下に含まれています。私はこのgetInstanceコードがリスト配列に値を設定しようとしているかどうかはわかりません。

APIがエラー

Undefined variable: list in /var/www/HeXXX/XXXX/city.php on line 53 

以下の投げPHPクラスと呼ばれるたびに私はPHPに新しいし、解決策を見つけることができないのです。その重複した質問かもしれませんが、私は既にStackOverflowを検索して、同様の投稿を取得しませんでした。

全コード:

public static function all() { 
      // $list = [0]; 
      $db = Db::getInstance(); 
       $list = $list[0]; 
      $req = $db->query('SELECT * FROM users'); 
      // we create a list of Post objects from the database results 
      foreach($req->fetchAll() as $user) { 
       $list[] = new User($user['userid'], $user['firstName'], $user['lastName'], $user['email'], $user['password'], $user['status'], $user['regTime'], $user['username'], $user['avata  r'], $user['gender'], $user['dob'], $user['vCode'], $user['city_id'], $user['country'], $user['mobile'], $user['dating_status'], $user['interest_in'], $user['about_me'],$user['request_  limit']); 
      } 

      return $list; 
     } 
+0

エラーの詳細をお知らせください。 – jonystorm

+0

@jonystormエラーの詳細を投稿したばかりの記事を更新しました。エラーが発生しています。未定義の変数:list、Apacheのバージョンに互換性がないようですが、私は助けてください。 –

+0

その前に '$ list'を定義していないのなら、それは未定義です。 – Kisaragi

答えて

2

通知は、それが設定されている前に何かが$list変数にアクセスしていることを語っています。これは、$listという値を与えるように評価されなければならないことによって$list[0]によって引き起こされる。

あなた(またはライブラリの作者)は、おそらく$ list = array();が必要でした。最初に$list変数を空の配列に初期化します。

+0

'$ list [] = 'value'を追加するだけで、値を取得していないので、' $ list = []; 'も2つのセントに追加するだけで動作します。 ; 'それは、空の配列の代わりにnullを返すため、テーブルにユーザーがいない場合を除きます。 – Xorifelse

+0

@ Xorifelse Yup - しかし、> = PHP5.4だから、安全なものを使いましょう:-)ユーザーがいない可能性があるため、初期化は常に良い考えです。 – MatsLindh

0

でその行を交換してみてください:

if (!empty($list[0])){ 
    $list = $list[0]; 
} 
+0

JavascriptとPHPを混同しないでください。 PHPでは、演算子として 'typeof'や' undefined'といったものはありません(対応する関数と値はgettypeとnullになります)。 – MatsLindh

+0

申し訳ありませんが、私の悪い、更新されます。 – jonystorm

+0

@jonystorm実際これは第三者図書館であり、私はファイルをテンパリングするべきではありません。しかし、私はこの配列コードの前に '$ db = Db :: getInstance();'という行があり、これがリスト配列を更新しようとしている可能性があることに気付きました。 –

関連する問題