私は少しジレンマを抱えています、In PHP foreachループとwhileループの両方がこの状況でまったく同じことをするようです:
foreach($execute->result as $item){
echo $item['user_pass'].'<br />';
}
そして
while($row = mysqli_fetch_assoc($execute->result)){
echo $row['user_pass'].'<br />';
}
私の質問は、本当の違いはありますか...?どちらを使うのが良いのか、両方を使うのが良いのか...これら2つのうちのいずれかは、より大きな可能性をあなたに与えますか?
この場合、それらはまったく同じです。 mysqli_result
は、Traversable
インターフェースを実装し(ここに記載されているように http://www.php.net/mysqli_result )、foreach
ループを使用して反復できるようにします。
内部的には、mysqli_result
オブジェクトでforeach
を呼び出すと、mysqli_fetch_assoc
への呼び出しも実行されると思います。
最初の方法と2番目の方法のどちらを使用しても違いはないと思います。ただし、最初の方は見た目がきれいで、「もっとPHP5が多い」ように見えます。
柔軟性について言えば、最初のコードはmysqli_result
だけでなく、Traversable
を実装する任意のオブジェクトでそのコードを使用できるため、確かにより柔軟性があります。
私はこれを見つけました:
for vs foreach vs whileは、phpの配列を反復する場合に高速です
答えは、速度の違いはごくわずかであり、どちらを使用しても問題にならないと述べています。
キーと値にアクセスできるため、foreachループを使用して返された情報を反復処理するのが好きです。これは、必要に応じて便利です。
$returned = array(array("userName" => "Tim"),array("userName" => "Bob"), array("userName" => "Guy"));
foreach($returned as $L1)
{
foreach($L1 as $L2 => $val)
{
if($L2 === "userName")
{
echo 'Hello: ' . $val . "<br />";
}
}
}
必要な値、必要なコントロールの量、必要な場所によって異なります。