トップページ > プログラム > 2020年03月29日 > wUzzaaBN0

書き込み順位&時間帯一覧

23 位/152 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000100010000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 09da-Cd0d)
【PHP】下らねぇ質問はここに書き込みやがれ 10

書き込みレス一覧

【PHP】下らねぇ質問はここに書き込みやがれ 10
879 :デフォルトの名無しさん (ワッチョイ 09da-Cd0d)[sage]:2020/03/29(日) 10:25:07.65 ID:wUzzaaBN0
文字列と多次元配列の値に対して一括で処理できるメソッドで質問です。

下記メソッドで$hogeに多次元配列が渡ってきたと仮定しまして、
値が配列であれば再起処理でメソッドが再度呼び出されるそうです。

私の考えでは、再起処理で多次元配列の中の値が配列ではなかったときは、
Aの文字列の方に流れるのではと思っていたのですが、実際は@に流れるようです。

多次元配列の中の文字列にis_array()を掛けてもfalseなのですが、どういった理由で
@に流れるのでしょうか?

function test($hoge) {
 // 配列の場合
 if (is_array($hoge)) {
  foreach ($hoge as $key => $value) {
   // 再起処理
   if (is_array($value)) {
    test($value);
   }
   // @配列の中の値が配列でない場合
   else {
    ...
   }
  }
  return;
 }
 // A文字列の場合
 return;
}
【PHP】下らねぇ質問はここに書き込みやがれ 10
881 :デフォルトの名無しさん (ワッチョイ 09da-Cd0d)[sage]:2020/03/29(日) 14:07:51.77 ID:wUzzaaBN0
>>880
誤字失礼しました。

どうにも理解できなくて、再度質問しようと文字に起こしていたところ自己解決できました。
Aは文字列専用の終了条件で@は配列専用の終了条件だったようです。

再帰処理の際に値が文字列なのに、何で配列判定で true が出るのだろう?
というところが疑問だったのですが、
本来であれば配列の中の配列である [] で再帰処理されるところを、その中の値Bで
再帰処理されていると勘違いしておりました。

ご迷惑おかけしました。

$hoge = [
 'piyo1',
 'piyo2',
 [
  // B
  'piyo3'
 ]
];


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。