• ベストアンサー

phpの変数の初歩

phpの変数について基本的な質問です 変数の後ろに半角空白を入れないといけないのは日本語の場合だけですか? 記号や数字の場合は空白はいらないのですか? カッコでくくるのがめんどいので問題ないなら省略したいのです $hoge= 50; echo "$hoge<100";

  • flash0
  • お礼率97% (297/306)
  • PHP
  • 回答数2
  • ありがとう数1

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

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

まずhtmlで処理するなら「<」は「&lt;」と書くように心がけたいですね で、不注意や特殊なケースでのエラーをさけたいなら 変数は文字列のかたまりから出すことです。 echo $hoge."&lt;100"; あとはsprintfなどフォーマットをつかった表示をするとか echo sprintf("%d&lt;100",$hoge); どうしても塊で処理したいなら「{}」で囲むことです。 echo "{$hoge}&lt;100"; もちろん、自分だけしか使わないファイルで、自分でチェックして 自分のちからで解決できるなら echo "$hoge&lt;100"; でも問題ありません

flash0
質問者

お礼

やっぱり、省略はしないほうがよさそうですね ありがとうございました

その他の回答 (1)

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

phpのパーサが変数をキチンと認識できれば問題ありません。 逆に言えば、英数字など変数名に使える文字(一部の記号含む)が続く場合には、どこまでが変数名なのかを波括弧で明示しないといけません。 http://www.php.net/manual/ja/language.variables.basics.php http://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing 二重引用符内に変数名を書いたりせず、単引用符の文字列リテラルと変数名を結合演算子(.)で繋ぐ方が「どうパースされるか」を意識しなくていいので楽ですし速度的にも(余計なパース処理がないので)有利です。 >日本語の場合だけですか? 「日本語」の意味がちょっとわかりません。変数名には日本語は使えませんし、文字列リテラルとしての日本語はasciiと同じ扱いです。

flash0
質問者

補足

お答えいただきありがとうございます 日本語は変数の次に来る文字のことです やってみたら半角英数字と日本語ではカッコが必要でした 変数の次が記号の場合はまちまちで、表示できる記号とできない記号がありました >phpのパーサが変数をキチンと認識できれば問題ありません 表示できている記号は、カッコを省略しても大丈夫ってことですか?

関連するQ&A

  • PHPの不等式に変数を使う

    いつもお世話になります PHPの不等式に変数を使うことは出来ますでしょうか? 例えば $a = 'huga'; $b = 'huga'; if($a == $b){ echo 'hoge'; } 結果 hoge 右辺と左辺の間、不等式を変数にしたいです $a = 'huga'; $b = 'huga'; $c = '==' if($a $c $b){ echo 'hoge'; } 期待する結果 hoge 上のソースはもちろんパースエラーとなり成り立ちません 型変換や考えられるキーワードで検索したのですが、出てきませんでした 下のように strpos()、strstr()等で$cの内容を解析して、条件分岐すれば期待の結果が出せるのは分かります if( strpos($c,'==') !== false && $a == $b){ echo 'hoge'; } (上記で成り立つのは分かります) 教えていただきたい内容は、「不等式を変数で成り立たせる方法」です $c= '=='; PHPに詳しい方お教えいただけると嬉しいです

    • ベストアンサー
    • PHP
  • PHPで変数の内容を特定の条件で書き換えるには?

    PHPで、例えばこんな変数を受けたとします。 $test = 499; この変数は「3桁の半角数字のみ」が受け渡しされるとして・・・ 499 ⇒ 4.99 のように、「変数に3桁の数字が入ったら、自動で最初の数字の次に.(ドット)を入れたい」のですが、方法が分かりません。 要するに、この場合は「$test = 4.99;」こうなってくれればいいのですが、どなたか方法を教えていただけませんでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • フォームから受け取ったデータを変数に/PHP

    入力フォームからデータを送信し、受け取ります。 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> この時に受けったデータが、「りんご」だとして この「りんご」を変数にしたいです。 ↓ <?php $keyword = "りんご"; ?> このようにするには、 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> の後にどのような処理をすればよいでしょうか? または初めから「$keyword」としてフォームからデータを送ることはできるのでしょうか? 何卒ご指導の程よろしくお願いします。

    • ベストアンサー
    • PHP
  • Nowdocの機能をphp5.2で使いたい

    php5.3からヒアドキュメント内部で変数が展開されないNowdocが使えるようになりましたが、 これと同様のことをphp5.2でできないでしょうか。 下のコードで、ヒアドキュメント内の内容を触らずに(\$hogeなどとエスケープせずに) 変数$hogeを展開させない方法を教えてください。 $source = <<<HERE <?php $hoge = "hogehoge"; ?> HERE; echo $source;

    • ベストアンサー
    • PHP
  • phpのsetTextで変数の使用

    phpでのsetTextについて教えてほしいです。 $text 日本語の場合 setText($text); だと、空の状態です。 $text アルファベットの場合ちゃんと表示されます。 setText('あいうえお');の場合ちゃんと表示されます。 setText('abcde');の場合ちゃんと表示されます。 どうしても変数からの日本語が入らないのですがどうすればよいでしょうか。 $textは POSTで受け取ったものを変数としています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpで 変数の中にデータが入っているかどうかを判別する

    phpで変数の中が空なら・・・ という命令を書く場合 if($hoge == "")とか if(isset($hoge)) という風に書くとおもうんですが、 変数の中身が配列で、その配列の一つでもデータが入っているかどうかを 判別する方法はないのでしょうか? 例えば、 $hoge = array([1] = りんご,[2] = )  と  $hoge = array([1] = ,[2] = ) で、表示結果を変えたいということです。 配列を一旦分解するしかないのでしょうか?

    • ベストアンサー
    • PHP
  • PHPの式について

    かなり基本的な事柄なのですが PHPにおいて【式】とは http://php.net/manual/ja/language.expressions.php の冒頭にある >式は、PHP における最も重要な基盤石です。PHPにおいては、ほとんど全てのものは式で記述されます。最も簡単で最も正確な式の定義は、"全ての式には値がある。" です。 とありますが、つまりは式とは評価したとき返り値を持つものと解釈してもよいのでしょうか? 例をあげると $hoge = 5; //これは式 print $hoge;//これも式 echo (print $hoge); //これも式 print (print $hoge); //これも式 echo (echo $hoge); //これは?実行するとパースエラー なぜ一番最後の例のみパースエラーなのでしょうか? 調べてみると【print】関数・・・というよりprintという言語構文ですか これはどうも常に1という値を返すみたですね。 つまり、本質問の冒頭で申した通り、帰り値を持つものが式とするならば この echo (echo $hoge); は式ではない。 ということになりますか? 以上、ちょっと根本的すぎますが ご教授ください。

    • ベストアンサー
    • PHP
  • CRON でPHPスクリプトをGET変数付きで実行したい

    CRONで下記のようにPHPスクリプトをGET値(hoge=1)を付加して実行したいのですがうまくできません。 */1 * * * * php path/myscript.php?hoge=1 CRONでPHPスクリプトを実行する場合、GET変数は使えないのでしょうか? ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 【超初歩】 php構文の書き方の作法?

    (1) 過去に http://oshiete1.goo.ne.jp/qa2419133.html で, こういう書き方を教わりましたが if ( $_POST["reg"] == "" ) $errFlg = true; ↑は,カッコ{}は省略する書き方ですか?こういう書き方をしていいのですか? (2) それと,下記のIF文の引数で,変数名に「!」がついているのといないのとで 何が違うのか,日本語にすると,「$errFlg がNULLじゃなかったら」とか, そういう意味ですか? if ( !$errFlg ) { ~~~処理~~~ } if ( $errFlg ) { ~~~処理~~~ }

    • ベストアンサー
    • PHP
  • PHPから文字列を変数に割り当てたい

    変数aにPHPから文字列や空文字を割り当てたいのですが、 次のようなコードだと http://ideone.com/dHmbVY 「b is not defined」や「Unexpected token」といったエラーが出てしまいます・・・ 次のように var a = <?php echo 3 ?>; 文字列じゃなくて数字ならエラーが出ずに済むのですが、 どのように記述すればPHPから文字列を割り当てるとこができるのでしょうか?

専門家に質問してみよう