• ベストアンサー

構文について

ptakedaの回答

  • ベストアンサー
  • ptakeda
  • ベストアンサー率53% (7/13)
回答No.1

どのようにしたいのか良く分かりませんが、 PHPで処理させたいところは、全部<? ?>の中で無いといけないんでないかい? <?php if ( $a == "" ){$val = 'あいう';}else{$val = 'えお';} echo $val; ?> それか、 <?php $val = $a==''?'あいう':'えお'; echo $val; ?> とか? サーバーサイドスクリプトの意味は分かっていますよね?

h_urasam
質問者

お礼

後者の例でechoをファイル出力した後にファイルをrequireで読み込んで表示させていたのですが、ファイル出力をやめて前者のように直接行おうとした際にうまくいかなかった為質問させて頂きました。 よくよく考えれば後者の場合はその内容が実行された以降では再度phpとしての構文解析は行われないので当たり前でした。 すっきりしました。ありがとうございました。

関連するQ&A

  • PHPの構文

    名前と年齢をフォームページから入力して 名前・年齢、そして成人・未成年の表示をするPHPのサンプルがあります。 初学者で無駄な部分が多く複雑になってしまったのですが ここをもっとこうしたほうが良いなど もっとシンプルで分かりやすい構文にできるのでしょうか? よろしくお願いいたします。 in.php ----------------------------------------------- <html> <body> <form action="out.php" method="post"> <table><tr><td>名前入力: <input type="text" name="name"></td></tr> <tr><td>年齢入力: <input type="text" name="age"></td></tr> </table> <input type="submit" value="ボタン"> </form> </body> </html> ----------------------------------------------- out.php ----------------------------------------------- <html> <body> <?php $name = htmlspecialchars($_POST["name"], ENT_QUOTES); $agen = mb_convert_kana($_POST["age"], "a"); $age = htmlspecialchars($agen, ENT_QUOTES); If($name == ""){ if($age == ""){ echo "名前、年齢の入力がありません。"; }else{ echo "名前を入力してください。"; } }else{ if($age == ""){ echo "年齢を入力してください。"; }else{ echo "あなたの名前は{$name}、年齢は{$age}です。"; if($age<20){ echo "あなたは未成年です。"; }else{ echo "あなたは成人です。"; } } } echo "<p><a href='in.php'>フォームに戻る</a>"; ?> </body> </html> -----------------------------------------------

    • ベストアンサー
    • PHP
  • bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。

    bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。 今はif分毎で、エラー時にメール配信処理してますが、全て同じあて先配信なので、 簡潔に処理内容をまとめたいです。 echo "aaa" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" fi echo "bbb" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" exit 0

  • シェルスクリプト構文で「もしファイルが存在しなかったら」を表すには?

    シェルスクリプトのif文で「存在しなかったらthen節へ」の表現方法を伺っても宜しいでしょうか? 現状「存在するならthen節へ」を使い下のようにしています。 if [ -e XXXXX ]; then # XXXXXが存在しなかったら echo # 存在時は処理なし。が、構文不明の為、無意味なechoを入れてる else # 存在しない時の処理がここにある fi 上を自然な文法に修正したいです。以上どうか宜しくお願い致します。

  • ifで構文エラー?

    Red Hat Linux9がインストールしてあるPCがあり、 そこに #!/bin/sh if [ -f aaa.txt ] then   echo aaaaaaa else   echo bbbbbbb fi #end という内容のtest.txtを作り source test.txt と入力するとaaa.txtは無いので bbbbbbbと表示されはずですよね。 ですが if: 式構文?. と出てしまいます。 RedHatLinux9がインストールしてある別なPCでも 同じようにやったんですが こちらは問題なくbbbbbbbと出るんです。 何が悪いのかわからなくて困ってます。 よろしくお願いします

  • phpのswitch文で必ずdefault処理さる

    phpでswitch文を使って変数の値に応じて処理を変えたいのですが、なぜか常にdefault処理をされてしまいます。 htmlの別ファイルから例えば"テスト,テスト2,テスト3"という文字列を受け取って strtok()を使って、$aに"テスト", $bに"テスト2", $cに"テスト3"と入るようにしました。 それで$aには"テスト"の文字列が入っているはずなので、 switch($a){ case "テスト":~~/処理 break; default:~~//処理 break; } と書いた場合、case "テスト" の処理がされるはずだと思うのですが、 なぜかdefaultの場合の処理がされてしまいます。 gettype($a); で$aの型を調べると、string型になっていおり、 $aの中身を echo "a: {$a}"; で確認すると 「a: テスト」と表示されます。 しかし、if文で if($a == "テスト"){ echo "a match テスト"; } else{ echo "not match"; } のように書いてみると、 「not match」が表示されます。 この理由が分かりません。  この理由が分かる方はいらっしゃいますか? 解決策を教えてください。 また、もしかしたら$aにはecho や print()では表示されない文字が 付属しているのかもしれないと考えていますが、 echoやprint()で表示されない文字を表示させる方法はありますか?

    • ベストアンサー
    • PHP
  • 構文エラー

    <% if confirm("削除しますか?") then   処理 else %>   <script type="text/javascript">    <!--      location.href="history.back()"    // -->   </script> <% end if %> vbscriptのIF文の中に、javascriptの処理を入れることはできないのでしょうか? 上のように書いたら、構文エラーになってしまいました。 処理としては、confirmでキャンセルが押されたら前のページに戻るという動きにしたいのですが、やり方がわかりません。 よろしくお願いします。

  • if構文の中で更に条件分岐をしたい

    ニュース記事を下記のようにカテゴリ別に表示しています。 while($rec = mysql_fetch_array($rs, MYSQL_ASSOC)){ if($rec['category'] == 1){ echo '<a href="'.$rec['url'].'" target=_blank>'.$rec['title'].'</a><br>'; } elseif($rec['category'] == 2){ echo '<a href="'.$rec['url'].'" target=_blank>'.$rec['title'].'</a><br>'; } elseif($rec['category'] == 3){ echo '<a href="'.$rec['url'].'" target=_blank>'.$rec['title'].'</a><br>'; } } 24時間以内の記事にはNEWを表示したいのですが、どのように組み込んだらいいのか分かりません。 下記がNEWを表示するためのコードです。 while($rec = mysql_fetch_array($rs, MYSQL_ASSOC)){ $ts = strtotime($rec['date']); $tsi = (time()-$ts); if($tsi<86400){ echo new.'<br>'; } else{ echo '<br>'; } } このようにifの中で更に条件分岐したい場合、どのようなやり方があるのでしょうか?

    • ベストアンサー
    • PHP
  • foeach

    IDと名前とパスワードを入力したsample.csvがあり、 $shop = file('sample.csv'); として、foreachを利用して配列に入れたとします。 foreach($shop as $val){ list($li_id ,$li_name, $li_pass) = split("\t",$val); if($id == $li_id){ echo "a"; exit; }else{ echo"b"; exit; } } として、フォームから送られてきたIDと、 csvに入っているIDが一致したらaを表示、 一致しなければbを表示というように上記のプログラムを書きました。 しかし、csvファイルの一番上のIDでなければ、 すべてbが表示されてしまいます。 exit;をとると今度は、 「abb」や「bab」など、すべて表示されてしまいます。 どのようにすれば一致したらaを表示、しなければbを表示というようにできるのでしょうか。

    • ベストアンサー
    • PHP
  • vbsのif文で複数条件の判定

    例えば以下である場合、 WScript.echo AAA WScript.echo BBB vbsを実行すると "?"が表示されます。 "OK"が表示されない原因として考えられる事はありますでしょうか If AAA = false Then If BBB = false Then WScript.echo "OK" else WScript.echo "NG" End If else WScript.echo "?" End If

  • Valiantで定義したものをIntegerに変換したい

    中でIntegerで処理したいのですが 入口で何が入ってくるかわからないので 初めValiantで定義しておいて、変換したいのですが If ax = "" Then a = 0 Else a = Val(ax) End If とすると Nullの使い方が不正です、のエラーがでてしまいます