0

私はこのようなものが欲しいです:

if (($sqlResult = returnArrayAfterSQLResult(...)) != -1) {
  getRow($sqlResult);
  /* ... */
} else {
  /* handling error */
}

すべてがうまく機能していますが、問題があれば mysqli 配列を返すか、問題がある場合は -1 を返すというのは 100% 正しくないことはわかっています。また、サーバーからも通知が届きます: Notice: Object of class mysqli_result could not be convert to int in ...

それで、あなたはどう思いますか?

4

2 に答える 2

0

関数からさまざまなデータ型を返すことはまったく問題なく (多くの組み込み関数で実行されます)、PHP が許可する優れた機能の 1 つです。リソースまたは整数を返すことは通常ありません。resource/falseまたは resource/nullは、より一般的なオプションであり、検討する必要があります。

とはいえ、あなたのコードからの通知は、比較が で行われるという事実によるもの!=です。エラーの戻り値の型を変更しない場合は、!==代わりに次を使用します。

if (($sqlResult = returnArrayAfterSQLResult(...)) !== -1)

これにより、PHP はリソースを整数に変換しようとしなくなります。

于 2013-10-21T08:12:29.397 に答える