• ベストアンサー

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
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPでの指定回数処理について

    例えば、n回の実行を行いたい時、PHPではどうするのか、 Perlでは [ 実行内容 ] x @arrayとすることで、 要素数分の処理ができます。 Rubyでは times {|n| 実行内容 } とすることで、n回分の処理ができます。 ■ではPHPではどうすれば 1行でかないますでしょうか。

    • ベストアンサー
    • PHP
  • WikipediaのPHPによるAPIについて

    http://wikipedia.simpleapi.net/ にサンプルが出ていて、それを利用しようと思っています。 --以下サンプル <?php // キーワード指定 $keyword = "多田富雄"; // APIのURL $url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php"; // データを取得 $data = file_get_contents($url) ; // PHPシリアライズパーサーを利用して解析し、配列に入れる $array = unserialize($data); // 配列をforeachで表示するデモ print "<H1>Wikipedia情報</H1>"; foreach ($array as $key => $value) { print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>". $value[body] ."<hr/>\n\n"; } ?> --サンプル以上 実際のwikipediaで"多田富雄"を入力し調べた時と、上記サンプルを起動してprintした時では内容が異なります。 (上記サンプルの方がかなり少ない) unserialize関数もしくはfile_get_contents関数か、別の要因かよくわかりません。 ご経験のおありの方、ヒントだけでもいただけると助かります。 なお、私のphp経験は50-100時間程度、環境はXP,Apache2,php5です。

    • ベストアンサー
    • PHP
  • PHPについて質問です。

    PHPについて質問です。 <?php $lines0 = file('data.txt'); $lines = array_reverse($lines0); foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } ?> でファイルの内容は表示することができるようになったのですが、 次に、$linesをテキストエリアに表示させようとすると、Arrayと表示されます。 <textarea name="textarea" cols="50" rows="5" disabled="disabled">$lines</textarea> どうすれば解決できるでしょうか?

    • ベストアンサー
    • PHP
  • CGIで外部のPHPを実行するには?

    ルートにあるCGIから例えばphpフォルダにあるsample.phpを実行するには、 下記のような感じで良いのでしょうか? **********************************  #!/usr/bin/perl  print "Content-type: text/html\n\n";  print "sample.phpの実行\n<br>";  system 'php/sample.php';  exit; ********************************** 宜しくお願い致します。

    • 締切済み
    • CGI
  • PHPの記述内容

    以下の記述内容と意味が分からず困っています。初心者にも分かりやすく教えていただけないでしょうか。 <?php // 読み込み $file = 'side.html'; if(file_exists($file)){ $content = file_get_contents($file); $content = preg_replace(array("/\r\n|\n\r|\n|\r/", "/'/"),array("", "\'") , $content); echo 'document.write(\'' . $content . '\');'; } ?>

  • PHPの勉強中の初心者です。

    PHPの勉強中の初心者です。 PHPに詳しい人に教えてもらいながら以下のPHPを組みました。 内容はlist.cgiというテキストファイルをPHPで出力することです。 一応出力はできたのですが、出力するデータをテーブル内に埋め込みたいと思いますが、 PHPのファイルにどのようにtableタグを埋め込むべきかが分かりません。 (例)1,AAA BBB CCC<br /> DDD を tdのセルに埋め込みたく。 どなかたご教授いただけませんでしょうか?どうぞ、よろしくお願いいたします。 list.cgi 1,AAA BBB CCC<br /> DDD 2,AAA BBB CCC<br /> DDD 3,AAA BBB CCC<br /> DDD <?php $datafile = "list.cgi"; //ファイルの読み込み $fr = fopen ( $datafile, "r" ); $alldata = fread ( $fr, filesize ( $datafile ) ); fclose ( $fr ); $alldata = str_replace ( "\r", "\n", $alldata ); $alldata = str_replace ( "\n\n", "\n", $alldata ); $alldata = explode ( "\n", $alldata ); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>サンプル</title> </head> <body> <div style="width:240px"> <?php if($_GET["n"]){ for($i=0;$i<count($alldata);$i++){ $buff=explode(",",$alldata[$i]); if($buff[0]==$_GET["n"]){ print $buff[1]; print "<br />"; } } } ?> </div> </body> </html>

    • 締切済み
    • PHP
  • phpでツリー表示

    表題の通り、phpをもちいてツリー表示をしたいと思っています。 そこで、下記のコードの実行結果は以下の通りなのですが、 【このように実行結果を変えたい】のように表示したいと考えています。 どのようにコードを書きかえれば、実行できるでしょうか? 【コード】 <?php function put_tree($no, $line, $broths, $childs, $texts) { echo '<span class="line">' . $line . '</span>'; echo '▼[' . $no . ']' . $texts[$no] . '<br>'; $line = preg_replace('/├$/', '│', $line); $line = preg_replace('/└$/', ' ', $line); $no = isset($childs[$no]) ? $childs[$no] : 0; while ($no > 0) { $tail = $broths[$no] ? '├' : '└'; put_tree($no, $line . $tail, $broths, $childs, $texts); $no = $broths[$no]; } } ?> <html> <head> <title>ツリー表示</title> <style> .line { font-family: "MS ゴシック", monospace; } </style> </head> <body> <?php $logs = array( array(1, 0, 'あああああ'), //記事番号・親記事番号・記事内容 array(2, 1, 'いいいいい'), array(3, 1, 'ううううう'), array(4, 2, 'えええええ'), array(5, 3, 'おおおおお'), array(6, 3, 'かかかかか'), array(7, 0, 'ききききき'), array(8, 6, 'くくくくく'), array(9, 8, 'けけけけけ'), array(10, 7, 'こここここ') ); $roots = array(); $broths = array(); $childs = array(); $texts = array(); foreach ($logs as $log) { list($no, $pno, $text) = $log; if ($pno == 0) { $roots[] = $no; } else { $broths[$no] = isset($childs[$pno]) ? $childs[$pno] : 0; $childs[$pno] = $no; } $texts[$no] = $text; } rsort($roots); foreach ($roots as $root) { put_tree($root, '', $broths, $childs, $texts); } ?> </body> </html> 【実行結果】 ▼[7]ききききき └▼[10]こここここ ▼[1]あああああ ├▼[3]ううううう │├▼[6]かかかかか ││└▼[8]くくくくく ││ └▼[9]けけけけけ │└▼[5]おおおおお └▼[2]いいいいい  └▼[4]えええええ 【このように実行結果を変えたい】 ▼[1]あああああ ├▼[3]ううううう │├▼[6]かかかかか ││└▼[8]くくくくく ││ └▼[9]けけけけけ │└▼[5]おおおおお └▼[2]いいいいい  └▼[4]えええええ ▼[7]ききききき └▼[10]こここここ

    • 締切済み
    • PHP
  • Perl内でPHPの出力結果を表示したい

    Perl製のCGI内で、PHP製のランダムバナー表示CGIを呼ぼうとしたのですが、下記のようなエラーが出てしまいました。 いろいろ試行錯誤したのですが、お手上げです。 どのように修正したらよいでしょうか? なお、ランダムバナー表示CGI 単体だけを実行したときは、正常に表示されています。 [index.cgi]  #!/usr/local/bin/perl  print "Content-type: text/html\n\n";  print "<HTML>\n<BODY>\n\n";  $ImgFileName="./ad.php";  open(IN, "$ImgFileName |");  while (<IN>) {    $str=$str.$_;  }  close(IN);  print $str; [ad.php]  <?php  $_1 = ('<img src="http://example.jp/a.gif">');  $_2 = ('<img src="http://example.jp/b.gif">');  $img_arry = array("$_1","$_2");  srand((double)microtime()*1000000);  $num =array_rand($img_arry);  $image = $img_arry[$num];  echo "$image";  ?> [表示された内容] ./ad.php: ?php: No such file or directory ./ad.php: line 2: syntax error near unexpected token `('' ./ad.php: line 2: `$_1 = ('【a.gifの画像】);'

  • PHP+PostgreSQLでのエラー

    PHP3+PostgreSQLで開発をしています。 クラスライブラリを使って動かそうとしているのですが、 -------------------------------------------------- Warning: Division by zero in /○○.php3 on line 10 Parse error: parse error in /○○.php3 on line 10 -------------------------------------------------- というエラー?ワーニングが出ます。 これは何を意味しているのでしょうか? ご教授ください。 上記のワーニングにあるline 10には require($include_path/dbconnect.inc"); を記述しています。 PHP4徹底攻略/ソフトバンク パブリッシング のサンプルプログラム(P136~)を参考にコーディングしました。 また、このようなエラーメッセージがわかるサイトがありましたら重ねて教えて頂きたいと思います。 よろしくお願いします。

  • require Auth.php

    require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!!

    • ベストアンサー
    • PHP