• ベストアンサー

PHPで値を表示する「echo」「print」「pring_r」「var_dump」の違いや使い方について

ネットで調べたのですが、いまいち難しくて理解できませんでした。 echoは値を返さない、pirintは返すという事はなんとなく理解できたのですが、 やはりどんな時に使い分けするのか分かりません。 それぞれの役割や違い、使い方について教えていただけませんでしょうか。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

「ネットで調べる」というのがどういうことを指すのかわかりませんが、マニュアルの記載以上の情報はなかなかないのではと思います。私はとりあえず公式マニュアルで調べますけど・・。 echoとprintの違いについてはオンラインマニュアルに参考URLが記載されてます。読まれましたか?   http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 かくいう私も「echo」は短縮構文でしか使いませんね。複数のパラメータを渡す状況ってちょっとないです(わかりやすいセパレータの文字列で連結して渡すので・・)。 print_rとvar_dumpもマニュアルを熟読すればよろしいかと。   http://www.php.net/manual/ja/function.print-r.php   http://www.php.net/manual/ja/function.var-dump.php

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

よほどの偏屈な作り方をしていなければechoとprintの差がでるような 使い方をすることはないでしょう。 使用者の好き嫌いできめていいという認識でさほど問題ありません。 今までかかわってきた言語仕様に近しいものをつかえばよいでしょう。 print_rとvar_dumpはデバッグのレベルの違い程度で認識しているとよいのでは? print_rはキーと値の相関しか表示しないので情報が少ない分見やすいですが 型などがわからずデバッグするときに問題点をつきつめることが難しいです。 そんなときはやはりvar_dumpして細かくデータを追いかけます。 単にデータを追っかけるだけの簡単なデバッグにはprint_r、深くしらべたい ときにはvar_dumpという使い分けが妥当かと。

関連するQ&A

  • aaa.php?abc=1で渡したabcの値をechoする方法

    <a href='aaa.php?abc=1'>テスト</a> と記述したとします。 テストというリンクをクリックすると、aaa.phpに渡されますが、そのaaa.phpで、abcの値をechoしたいとき、どのように記述すればいいのでしょうか? <?php echo ×××; ?> ××× の部分が分からなくて困っています。初歩的ですみません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • echoとprintの使用について

    恥ずかしながらPHPの勉強を始めたばかりのものです。まずはPHP使いを夢見ています。今はHTMLを出力してる所です。 そこで気になったことがあります。 同じ(1つの)PHPファイルに echo と print を混ぜて使うことはあるものですか? やっぱりどっちかに統一させた方がいいんでしょうか? また、変数を使って表示させる場合が出た時は、printの方がいいんでしょうか? 最後になります。echoを使ってですが、文字と文字を繋げて使う接続詞?には、「,」と「.」をどちらも使えたんですが、echoに限ってはどっちも同じものなんでしょうか?違いはありますか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • printとechoの使い分け・・・?

    こんばんは。 いつもお世話になっております。 とても初歩の質問でお恥ずかしいのですが どうかご指導よろしくお願いいたします。 疑問なのは、書籍やPHPの初心者講座サイトさん によって、PHP吐き出し(?)の部分を print で指定したり、echoで指定していたりする 事なのです。 これは、どういった時に使い分けるものなのでしょうか? それとも、気分とか好みで使い分けるものなのでしょうか? どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで空の値を表示させたくない場合

    PHPでデータベースから値を取り出し 出力させるというスプリクトを作成してるのですが どうしても、入力フォームに空を値を 入れても空の値まで出力されてしまいます こういう場合はどうやって空の値を 弾くコードを書けばいいのか教えて もらえないでしょうか? ちなみに自分が書いたコードはこれです <?php $conn=mysql_connect("localhost", "username", "pass"); if (!$conn) { die('接続失敗です。'.mysql_error()); } mysql_select_db("database", $conn); mysql_query("SET NAMES 'ja-utf8'", $conn); mysql_query("INSERT INTO tablename (caram) VALUES ('$title_a')", $conn); $sql='SELECT title FROM tablename'; $rs=mysql_query($sql, $conn); $res=mysql_fetch_assoc($rs); if (isset($res)) { while ($res=mysql_fetch_assoc($rs)) { echo "<br>"; echo htmlspecialchars($res["caram"], ENT_QUOTES); } } else { echo ""; } mysql_close($conn); ?> どなたかよろしくお願いします。

    • ベストアンサー
    • PHP
  • phpのECHOが出力されない:wordpress

    A B C "text" というJSONデータのCを画面に出したい時、 echo $obj['A']['B']['C']; もしくは echo $obj->A->B->C; という文をphpの中に書き込んだのですが、 echo ”Halloworld”とかは出るのに、変数になると出ません。 ちなみにfunction.phpでショートコードから呼び出すファイルに記述しています。 何が間違っているのでしょうか。

    • 締切済み
    • PHP
  • phpでハイパーリンクして値を持っていきたい

    今phpを使ってhtmlのタグを使いハイパーリンクして値を持っていきたいのですけどよくわかりません for($i;$i>=0;$i--){ echo '<a href="user.php">'.$arr[$i].'</a><br />'; echo $i; このようにプログラムは書いてます user.phpに arr[$i]の値をそれぞれ持っていきたいのですけど どのように書けばいいでしょうか?

    • ベストアンサー
    • PHP
  • PHP☆ /test/ 配下に値があれば・・・

    PHPについて質問です。 例えば /test/ 配下に値があれば・・・ というif文を作りたいです。 if($_SERVER["REQUEST_URI"]=="/test/"){ echo "OK"; } これでは、もちろん /test/ のページのみになります。 /test/ 配下に値があれば・・ という書き方はどうすればよいでしょうか?

    • ベストアンサー
    • PHP
  • var_dumpの使い方について

    よくわからない点がございますので、お知恵をお貸し頂ければ幸いでございます。 よくあるvar_dumpの使い方の例には、 <?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); ?> や、session_start(); var_dump($_SESSION); if (isset($_SESSION['expire'])){ など色々ありますが、 下記スクリプトで「$_POST」「$_COOKIE」「$sql」「$record」を調べるには、var_dumpをどこに配置すれば、画面上にスクリプトが反映されるのでしょうか。 皆様お忙しいところ恐れ入りますが、ご助力頂ければ幸いです。 ■スクリプト <?php require_once('dbwin') session_start(); if (isset($_COOKIE['mail1']) !== TRUE) { $_COOKIE['mail1'] = NULL; } if ($_COOKIE['mail1'] != ''){ $_POST['mail1'] = $_COOKIE['mail1']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if (!empty($_POST)) { // ログインの処理 if ($_POST['mail1'] != '' && $_POST['password'] != '') { $sql = sprintf('SELECT * FROM ○○ WHERE mail1="%s" AND password="%s"', mysql_real_escape_string($_POST['mail1']), sha1(mysql_real_escape_string($_POST['password'])) ); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { // ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time();                                       ........省略 以上なのですが、上記スクリプトの 「$_POST」「$_COOKIE」「$sql」「$record」を、var_dumpを使って調べたいのですが、 その手法を具体的にご教授願えますでしょうか。 例えば、「$record」であれば、 $record = mysql_query($sql) or die(mysql_error()); $var_dump($record); とすべき。  ⇒という形でお知恵をお貸し頂ければ幸いでございます。 (この場合実際には、画面にvar_dumpで得られた値は表示されませんでした。) みなさまお忙しいとは存じますが、何卒よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPで画像を表示するプログラムについて

    実行するとランダムで取得した値を利用して、3パターンくらいの画像を切り替えて表示するPHPファイル を作成したいです! 以下のように書いてみたのですが、如何せん初心者なものでできない原因すらわかりません! 間違っているところを是非指摘していただきたいです。 宜しくお願い致します <?php $rand = rand(1,10); switch($rand){ case 1: echo("1"); break; case 2: echo("2"); break; case 3: echo("3"); break; case 4: echo("4"); break; case 5: echo("5"); break; case 6: echo("6"); break; case 7: echo("7"); break; case 8: echo("8"); break; case 9: echo("9"); break; case 10: echo("10"); break; if ($rand <= 3){ echo"<img src='a.jpg'>"; } elseif ($rand 4< || $rand >6 ) { echo"<img src='b.jpg'>"; elseif ($rand 7< || $rand >10 ) { echo"<img src='c.jpg'>"; } } ?>

    • 締切済み
    • PHP
  • echoとprintの違い

    echoとprintの違いについて質問します。 echoは結果を返すのに対してprintは返さないということが、サイトで説明されていますが、この説明の結果とはなんなのでしょうか? どちらも画面に表示させるから結果はどちらも返ってきていると思うのですが??

    • ベストアンサー
    • PHP

専門家に質問してみよう