- ベストアンサー
PHP初心者なので意味がわかりません
サンプルのPHP記述を見ながら勉強していますが、 下記の意味がまったくわかりません。 $n=0+$line[0]; $lineの1つ目の要素に0を足す? その後、以下のように続きます。 array_shift($line); $SbItems[$n]=$line; 社内で作成したPHPなので、全部載せることができません 中途半端な質問で申し訳ありませんが、ヒントをください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>$lineの1つ目の要素に0を足す? そうですね。$line[0]を数字として扱いたかったんじゃないでしょうか(intval($line[0])でも良さそうですが)。 > array_shift($line); > $SbItems[$n]=$line; > >社内で作成したPHPなので、全部載せることができません 全部読まないと意味はわかりません。$lineがどういうものを格納していて、$SbItemsに何を格納しようとしているのかは前後のソースを含めて読まないと、これだけでは何の意味も読み取れません。
その他の回答 (2)
- bm_hiro
- ベストアンサー率51% (200/388)
> $n=0+$line[0]; 実は俺 昔そういう書き方したことあるんですよねぇ。。。 既に他の方も書かれてるようにキャスト(型変換)したかっただけだと思いますよ。 その $line[0] を var_dump か gettype すると 多分 String じゃないですかねー
お礼
>キャスト(型変換)したかっただけ どうやらそのようです。 おかげさまで、先へ進むことができました。 ありがとうございます!
- cheese014
- ベストアンサー率85% (12/14)
こういう時は… $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]; ですし。
お礼
大変参考になりました。 ありがとうございます!
お礼
>$line[0]を数字として扱いたかった どうやらそのようです。 おかげさまで、先へ進むことができました。 ありがとうございます!