is_array()
私がやる前にいつも何かを使う必要があるのだろうかと思ってforeach
いました。
変数が配列でない場合、エラーがスローされます。だから私はいつも使用します:
if(is_array($users)) {
foreach($users as $user){
}
}
あなたは私に何を勧めますか?ありがとう。
コードを十分に理解している場合は、配列かどうかを確認する必要はありません。
それ以外の場合、変数の型が頻繁に変更される場合は、コードを少し調整して、それが行われないようにすることをお勧めします。
それ以外は、その if ステートメントを使用する方法です。
何かが配列であるか、そうでなければ Iterable を実装していることが確実な場合は、明らかに追加のif
条件は必要ありません。よくわからない場合は、明らかに型を確認すると、コードの信頼性が向上します。
私が見たいくつかのハックには、変数を配列にキャストすることが含まれます: (array)$users. ただし、これは推奨されません。型を明示的に確認することをお勧めします。
また、これが関数内のコードである場合は、引数の入力を使用できます。
function mycode(array $users)
{
foreach ($users as $user) { }
}
関数が間違った型で呼び出されると、エラーが発生します。
これが関数で発生すると仮定します。
function doSomethingWithUsers($users)
{
if(!is_array($users))
{
throw new Exception('$users is expected to be an array');
}
foreach($users as $user){
...
}
}
これにより、間違ったパラメーターで呼び出されたときにすぐにわかります。
あなたは私に何を勧めますか?
はい、それは良い考えであり、そのような考慮事項はあなたを防御的なプログラマーにします:)