概要
PHPで出してしまったエラーで一度詰まったので、対応を書いておく。
どんな意味か
foreach文では本来、オブジェクトか配列を指定して繰り返し処理を行うが、
指定された変数がそのどちらでもない場合にこのエラーをはく。
問題の切り分け
getypes()を使って型が適正かを判定
これに尽きます。そもそも引数としている変数が正しいのならこのようなエラーは起こらない。
ただし、なぜ思ったものと違う型になってしまうのかは追調査する必要あり。
keyとvalueの両方を指定している場合はどちらも型を調査する。
追調査
型変換をしているところや型の相互変換がされてしまうところを中心に見ると良い。
その辺りの詳しいところについては公式ドキュメント(型の相互変換)へ。