PHPの基本的な作法について

このQ&Aのポイント
  • PHPの基本的な作法について教えてください。
  • 共通のコードはどうするの?printの使い方はどちらが一般的? '"'と"'"の使い分けは?
  • PHP開発における基本的な作法について知りたいです。共通のコードの扱いやprintの使い方、 '"'と"'"の使い分けについて教えてください。
回答を見る
  • ベストアンサー

PHPの基本的な作法について

PHPをはじめたばかり(2日目)のものです。文法は一通り勉強しました。関数はおいおい覚えていけばいいものだと思います。しかしPHP開発には関わった事がなく、基本的・一般的な作法を全く知りません。 個人的に作るものなので完全独自ルールでもいいのですが、人に見せても恥ずかしくないソースを書きたいと思っています。ですので、開発の現場で一般的に使われているルールを知りたいと思っています。これについて教えてください。 (1)共通のコードはどうするの? 多くのページで共通に使うコード、たとえばHTMLのヘッダやメニューの出力処理などはどうするのかでしょうか。 ・すべてのソースに「<?php include './common/….php'; ?>」などと書くもの? ・それ以外の方法もある?各ソースには何も書かず自動挿入されるAOP的な何かとか (2)printの使い方 「print($input_text)」と「print $input_text」どちらを使うか?カッコをつけたほうが他の言語の記述との整合性を取りやすいようにも思うのですが、絶対に使わない戻り値をわざわざ発生させるのもどうかなと思っています。開発現場ではどちらかに統一する事が多いのではないかと思いますが、その場合にどちらに統一している事が多いのでしょうか。 (3)「"」と「'」の使い分け 「"」と「'」の使い分けはするものなのでしょうか?するならどのように使い分けるのでしょうか?私はもともとJavaをやっていたので、必要ではない場合でもつい「"」を優先的に使ってしまいます。しかし役割を考えると、原則「'」を使い、変数やエスケープの展開が必要な時に意識して「"」を使う、とするほうが安全かなとも思います。でも面倒くさいから基本「"」を使い、展開したくない時だけ「'」を使うという風にしてもいいかなと思っています。この点は一般的なルールとしてどうする事が多いのでしょうか?あまり気にしないのでしょうか? よろしくお願いします。

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

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

  • ベストアンサー
回答No.1

>私はもともとJavaをやっていたので、 って言っているならわかっていると思うけど >多くのページで共通に使うコード、たとえばHTMLのヘッダやメニューの出力処理などはどうするのかでしょうか。 PHPにおいてもMVCが基本。 >「print($input_text)」と「print $input_text」どちらを使うか? MVCで書くからprintもechoも使わない。 >絶対に使わない戻り値をわざわざ発生させるのもどうかなと思っています 普通そういうのはecho使いますから >「"」と「'」の使い分け プロジェクトのコーディング規約による。 "を使って変数を展開するような場合もあれば文字列は'を使って変数はその外で.で連結させるとか プロジェクトのコーディング規約によって変わってくる。

pringlez
質問者

お礼

MVC?ですか。おそらく意味合いとしては、MVC云々というより何かしらのフレームワークを使うという意味ですよね。なるほど、そうですか。 私のイメージではPHPは、各ページごとに「.php」ファイルを1枚作成し、そこにおおむねすべてを記述するものだと思っていました。実際、PHPの説明をしている多くのサイトの説明はそんな感じですし。そういうのは昔の話なんですかね。それか、初心者とか学生向けということなんですかね…。 「"」と「'」についてはどちらが多いともいえないということですね。 ありがとうございました

pringlez
質問者

補足

「MVCが基本だからprintもechoも使わない」 「普通そういうのはecho使います」 というのがよくわかりませんでした。あまり使わないけど使う場合もあるということなのでしょうか?もしそうならどのような場合にechoを使うのでしょうか。 もしよろしければ教えてください。よろしくお願いします。

関連するQ&A

  • javascript php フォームについて

    javascriptで作ったフォームをphpに送信したいのですが、上手く送信できません。 どのようにすれば上手く送信することができるでしょうか? 回答お願いします。 javascript側のソース <body> <form name="nform1" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問1</p> <p> (1)<input type="text" name="kaitouran11" size="20"> (2)<input type="text" name="kaitouran12" size="20"> (3)<input type="text" name="kaitouran13" size="20"> (4)<input type="text" name="kaitouran14" size="20"> </p> </form> <form name="nform2" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問2</p> <p> (1)<input type="text" name="kaitouran21" size="20"> (2)<input type="text" name="kaitouran22" size="20"> (3)<input type="text" name="kaitouran23" size="20"> (4)<input type="text" name="kaitouran24" size="20"> </p> </form> <form name="nform3" method="POST" action="./kaitou1.php" enctype="text/plain"> <p>問3</p> <p> (1)<input type="text" name="kaitouran31" size="20"> (2)<input type="text" name="kaitouran32" size="20"> (3)<input type="text" name="kaitouran33" size="20"> (4)<input type="text" name="kaitouran34" size="20"> </p> </form> <input type="button" value="送信" onClick="send()"> </body> php側のソース <body> <p>問1</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問2</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?> </p> <p>問3</p> <p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?> (2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?> (3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?> (4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?> </p> </body>

    • 締切済み
    • PHP
  • PHPについて教えてください

    以下のコードでthanks.phpにemailとgoikenが表示されません なぜでしょうか? おそらくthanks.phpが間違えてると思いますが見直してもわかりません index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <form method="POST" action="check.php"> ニックネームを入力してください<br> <input name="nickname" type="text" style="width:100px"><br> メールアドレスを入力してください<br> <input name="email" type="text" style="width:200px"><br> ご意見を一言でお聞かせください<br> <input name="goiken" type="text" style="width:300px"><br> <input type="submit" value="送信"> </form> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; if ($nickname==''){ print'ニックネームが入力されていません<br>'; } else { print'ようこそ'; print $nickname; print' 様'; print'<br>'; } if ($email==''){ print'メールアドレスが入力されていません<br>'; } else { print'メールアドレス:'; print $email; print'<br>'; } if ($goiken==''){ print'ご意見が入力されていません<br>'; } else { print'ご意見『'; print $goiken; print'』<br>'; } if($nickname=='' || $email='' || $goiken=''){ print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">'; print'<input name="nickname" type="hidden" value="'.$nickname.'">'; print'<input name="email" type="hidden" value="'.$email.'">'; print'<input name="goiken" type="hidden" value="'.$goiken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK">'; print'</form>'; } ?> </body> </html> thanks.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print $nickname; print'様<br>'; print'ご意見ありがとうございました<br>'; print'頂いたご意見『'; print $goiken; print '』<br>'; print $email; print'宛にメールを送信しました'; ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpそのよん

    <h1>PHPのテストです</h1> <form action="1.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php $ad1=$_POST["ad1"]; if($ad1==""){ print"違う"; } else{ print"合格"; print"様"; } ?> とやったんですが、まったく反応がありませんでした。 どこがいかんのでしょうーか?

    • ベストアンサー
    • PHP
  • XAMPP1.7.1上でPHPを実行するとソースが表示されます。

    いつも、お世話になっております。 小生、只今WindowsXPSP3上でXAMPP1.7.1を使い、PHPプログラミングを勉強しているPHP初心者です。 今回質問させて頂きたいのは、 HTMLで作成したページから、PHPで作成したページに遷移する際、 PHPで作成したページに、PHPのソースが表示されてしまいます。 詳しくご説明させて頂きますと、以下の様になります。 1・HTMLで入力フォーム、表示ボタンを作成。 2・入力フォームにデータを入力、表示ボタンを押下。 3・PHPで作成したページに遷移、本来HTMLで入力されたデータが表示されるはずなのに、PHPソースが表示される。 以上です。 以下にHTMLソース、PHPソースを提示させて頂きます。 -----HTML----- <html> <head> <title>ビールの値段</title> </head> <body> <form action="source.php" method="post"> お名前 : <input type="text" name="YourName"><br> ビールの値段: <input type="text" name="PriceOfBeer"><br> 本数: <input type="text" name="AmountOfBeer"><br> <input type="submit" value="計算"> </form> </bodyまた、> </html> -----PHP----- <?php $Today = date("Y年m月d日"); ?> <html> <head> <title>ビールの値段計算結果</title> </head> <body> <?php print("<h3>$Today</h3>\n"); print($_REQUEST['YourName'] . " さん<br><br>"); print("本日購入したビールの値段は"); print($_REQUEST['PriceOfBeer'] * $_REQUEST['AmountOfBeer']); print("円です。<br>\n"); ?> </body> </html> 以上です。 ちなみに他のPHP文例えば下記の様なPHP文は普通に実行されます。 -----PHP----- <?php $State = "Tokyo"; $Tokyo = "港区"; print("出身は東京の{$$State}です。"); ?> そして、各ツールのヴァージョンはXAMPP1.7.1、PHP5.2.9、Apache2.2.11.0になります。 また、XAMPP上の文字コードはUTF-8に設定してあり、PHPのソースはUTF-8にエンコード指定し保存して実行しています。 以上、ご確認の程、先輩方ご教授宜しくお願いします。

    • ベストアンサー
    • PHP
  • コードの何が間違っているのか分からない(PHP)

    ●質問の主旨 コードの何が間違っているのかよくわからない。 (check.php)のファイルで、 print'<input type="hidden" name="nickname" value="'$nickname.'">'; の行がsyntaxerrorとして、返されるがなぜそうなるのか分からない (マニュアル本に記述して、スペルミスもチェックしているのですが) 何かお気づきのかた、ご教示願います。 ●質問の補足 添付の画像のように名前、メールアドレス、ご意見を入力してもらう フォームをとして作りました(index.html) すべてのフォームに入力がされているかどうかチェックし、 (check.php) サンクスページを返すようにしました (thanks.php) ●環境 Windows8 XAMMP(ローカル開発環境) ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> <p>あなたの名前を入力してください</p> <input name="nickname" type="text" style="width:100px"> <p>メールアドレスを入力してください</p> <input name="email" type="text" style="width:200px"> <p>ご意見をお聞かせください</p> <input name="goiken" type="text" style="width:300px"><br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; $nickname = htmlspecialchars($nickname); $email = htmlspecialchars($email); $goiken = htmlspecialchars($goiken); if ($nickname == '') { print '名前が入力されてません!<br/>'; } else { print 'ようこそ!'; print $nickname; print 'さま'; print '<br/>'; } if ($email == '') { print 'emailが入力されてません!<br/>'; } else { print 'メールアドレス'; print $email; print '<br/>'; } if ($goiken == '') { print 'ご意見が入力されてません!<br/>'; } else { print 'ご意見'; print $goiken; print '<br/>'; } if($nickname == '' || $email == '' || $goiken == '') { print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">';   print'<input type="hidden" name="nickname" value="'$nickname.'">'; print'<input type="hidden" name="email" value="'.$email.'">'; print'<input type="hidden" name="goiken" value="'.$goiken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK!">'; print'</form>'; } ?> </body> </html> (thanks.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print 'ご意見ありがとうございました!'; print $nickname; print '様<br/>'; print 'ご意見ありがとうございました<br/>'; print '頂いたご意見『'; print $goiken; print '』<br/>'; print $email; ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpについについて質問3

    テキストボックスの内容を送信する事は成功しました。 しかし複数のテキストボックスはできませんでした。 <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ"; print$_POST["ad1"]; print$_POST["ad2"]; print"様"; ?> </form> これは間違いでしょうか? エラーもでてました Notice: Undefined index: ad1 in C:\xampp\htdocs\6.php on line 37 Notice: Undefined index: ad2 in C:\xampp\htdocs\6.php on line 38 様 とでてます すいません いつもいつも 入力された内容を受け取るという作業ができれば なんとなく一応目標達成だとおもいます

    • ベストアンサー
    • PHP
  • PHPのprint文の"と'の使用方法

    PHPコードで下記のように書いてみました。 [search_code.php] <?php for ( $i = 0; $i < $count; $i++ ){ print("<TR>"); print("<FORM method='POST'>"); print("<TD><input type=text name='$code' value = '".$table3[$i][0]."'></TD>"); print("<TD>".$table3[$i][1]."</TD>"); print("<TD>".$table3[$i][2]."</TD>"); print("<TD>".$table3[$i][3]."</TD>"); print("<TD>".$table3[$i][4]."</TD>"); print("<TD><input type=submit value='入庫登録' onclick='this.form.action='./input_arrival.php''></TD>"); print("</FORM>"); print("</TR>"); } ?> しかし、次の問題があります。 1. $codeが空欄になる。 2. ./input_arrival.phpが呼ばれず、コードを書いているソース[search_code.php]が再度呼ばれます。 $codeをinput_arrival.phpに渡すだけですが、コードの文法上の 問題と、FORMは分かれていても同じname(=$code)が複数存在する ことが許されるのか理解できていません。 何卒回答お願い致します。m(__)m

    • ベストアンサー
    • PHP
  • PHPの関数実行

    <?php function disp(){ echo "hello world"; } ?> <form> <input type="text"> <input type="button" onclick="<?php disp() ?>"> </form> といったソースを書いてみたのですが、ボタンを押してみるのですが作動しません。 どこか間違えているのでしょうか、それとも作動しないのでしょうか・・・。 当方としては、formのinputボタンを押したらPHPの関数が実行させるようにしたいのですが・・・。 どなたかご助言をお願いします。

    • ベストアンサー
    • PHP
  • PHPを使用してバックグランドカラーを変更できません

    PHPを使用してバックグランドカラーを変更しようとしています。フォームのテキストボックスに入力した色コードを、ボタンを押すことで再着色しようとしています。 一回目は大丈夫ですが、二回目以降は常に一回目の色になってしまい、困っております。お助けくださいm(_ _)m ブラウザのアドレスバーを見ますと、 一回目は色コード"ff0000"を指定し、 http://localhost/practice/phpself.php?bgcolor=ff0000 となっており、 二回目は色コード"0000ff"を指定し、やはり http://localhost/practice/phpself.php?bgcolor=ff0000 となっております。 ?以降を手動で消してやれば再着色可能なのですが・・・ 環境はPHP4.4.1+Apache1.3.34+Win2000SP4です。 ソースは以下のとおりです。よろしくお願いします。。。 <html> <head> <title>サンプル</title> </head> <body> <? $bgcolor = $_GET[bgcolor]; if($bgcolor == ""){ print("<body bgcolor=\"#ffffff\">"); }else{ print("<body bgcolor=\"#".$bgcolor."\""); } ?> <form method="GET" action="<? print($PHP_SELF); ?>"> <input type="text" name="bgcolor"><br> <input type="submit" value="色を入力して押して"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • なぜエラーが出るのか分からない(PHP)

    ●質問の主旨 check.phpファイルの最終行(</html>のところ)で Parse error: syntax error, unexpected end of file としてエラーが表示されます。 なぜエラー表示されるのでしょうか?ご存知の方ご教示願います。 (eclipseでもエラー表示されているのは分かりますが、 何がエラーなのか分かりません) ●状況 1.index.htmlのフォームに入力し、送信ボタンを押す (添付画像) 2.check.phpに飛ばす 3.飛ばすとエラーが表示される ●環境 windows8 xammp1.8.1 ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> ニックネームを入力してください<br/> <input name="nickname" type="text" style="width:100px"><br/> メールアドレスを入力してください<br/> <input name="email" type="text" style="width:200px"><br/> ご意見を入力してください<br/> <input name="goiken" type="text" style="width:300px"><br/> <br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; if($nickname =='') { print'ニックネームが入力されてません'; } else { print'ようこそ!'; print $nickname; print'様'; print'<br/>'; } if($email =='') { print'emailが入力されてません'; } else { print'ようこそ!'; print $email; print'<br/>'; if($goiken =='') { print'ご意見が入力されてません'; } else { print'ご意見'; print $goiken; print'』<br/>'; } ?> </body> </html>

    • ベストアンサー
    • PHP

専門家に質問してみよう