• ベストアンサー

PHP初心者なので意味がわかりません

サンプルのPHP記述を見ながら勉強していますが、 下記の意味がまったくわかりません。  $n=0+$line[0]; $lineの1つ目の要素に0を足す? その後、以下のように続きます。  array_shift($line);  $SbItems[$n]=$line; 社内で作成したPHPなので、全部載せることができません 中途半端な質問で申し訳ありませんが、ヒントをください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>$lineの1つ目の要素に0を足す? そうですね。$line[0]を数字として扱いたかったんじゃないでしょうか(intval($line[0])でも良さそうですが)。 > array_shift($line); > $SbItems[$n]=$line; > >社内で作成したPHPなので、全部載せることができません 全部読まないと意味はわかりません。$lineがどういうものを格納していて、$SbItemsに何を格納しようとしているのかは前後のソースを含めて読まないと、これだけでは何の意味も読み取れません。

henohenomohe_ji
質問者

お礼

>$line[0]を数字として扱いたかった どうやらそのようです。 おかげさまで、先へ進むことができました。 ありがとうございます!

その他の回答 (2)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

> $n=0+$line[0]; 実は俺 昔そういう書き方したことあるんですよねぇ。。。 既に他の方も書かれてるようにキャスト(型変換)したかっただけだと思いますよ。 その $line[0] を var_dump か gettype すると 多分 String じゃないですかねー

henohenomohe_ji
質問者

お礼

>キャスト(型変換)したかっただけ どうやらそのようです。 おかげさまで、先へ進むことができました。 ありがとうございます!

  • cheese014
  • ベストアンサー率85% (12/14)
回答No.2

こういう時は… $line = array('1', '2', '3'); …のようにして「仮の」値を与えてやると理解しやすいです。 $n = 0 + $line[0]; // $n = 1; array_shift($line); // $line = array('2', '3'); $SbItems[$n] = $line; // $SbItems[1] = array('2', '3'); …という事ですね。 で、結局何をやっているかというと、「$lineという配列の先頭の要素をキーに持ち、2番目以降の要素を値として持つ $SbItems という名前の新しい配列を作っている」という事になります。 $n = 0 + $line[0]; は、理解度を試すための「囮」ですかね。 int に型キャストしたいだけなら $n = (int) $line[0]; ですし。

henohenomohe_ji
質問者

お礼

大変参考になりました。 ありがとうございます!