![]() |
PHP 基本的な流れ(演算子) |
| 西広島ドットコムへようこそ! |
| |トップ|新着情報|検索|サイトマップ| |
|
form によるデータ入力printfでは表示しかできない。 いろいろ入力するとなると手軽なのは HTML 言語の form タグだ。 次のプログラム11.php を作成し、apache からアクセスできる場所に置こう。 <?php $s = $_GET[str]; print <<<EOF <form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="get"> 文字列を入力: <input type="text" name="str" size="30" value="受信文字列: $s"> <input type="submit" value="送信"> </form> EOF; ?> このプログラムはテキスト入力欄に受信文字列: と表示する。 そこを Bye. などと書き代えて「送信」ボタンを押してみよう。 今度は 受信文字列: Bye. と表示されるはずである。 つまり、form から get 形式で送られた文字列を受け取った PHP プログラムが、 $s という変数にそれをセットし、print 文の中で使用していることがわかる。 print <<<EOFというのは行頭が EOF; である 1 行に出会うまで、 全ての文字列を標準出力に出すという書き方である(ヒアドキュメント)。 この時、$ で始まる変数は展開されて中身が取り出される。 演算子以下、演算子を説明する。 算術演算子プログラム内で四則計算するには、次の算術演算子を使用する。
次のプログラム12.phpを作成し、算術演算子の使い方を確認してみよう。 <?php
$a = 64;
$b = 12;
printf("$a = %d, $b=%d<br>\n", $a, $b);
printf("和:%d, 差:%d, 積:%d, 商:%d, 余り:%d\n", $a+$b, $a-$b, $a*$b, $a/$b, $a%$b);
?>
結果が次のようになればよい。 2 つのオペランドが整数の場合(または整数に変換された文字列の場合)であっても、割算演算子 / は実際は float 値を返している。 a = 64, b=12 和:76, 差:52, 積:768, 商:5, 余り:4 単項演算子1つの項のみに関与する演算子として次のものがある。
ここで注意したいのは、インクリメントあるいはデクリメントのタイミングである。 $a = 10; $b = ++$a; /* $aをインクリメントした後、$bに代入 */ $c = $a++; /* $bに代入した後、$aをインクリメント */ 上の結果は、$b=11, $c=11となる。 このように$a++と++$aは微妙に違うことを覚えておきたい。 代入演算子代入演算子として次のものがある。
$a = $a + $bを短く書いたものが$a += $bである。 $a = $b = $cとすると、$a, $bともに $c の値が代入される。 比較演算子0なら偽(FALSE)、それ以外なら真(TRUE)となります。 次の比較演算子は正しければ1を、正しくなければ0を返します。
論理演算子あらゆる論理演算は、「かつ」「または」「でない」の組み合わせで表現できるとされている。 次の論理演算子も正しければ1、正しくなければ0を返す。
and と && は優先順位が異なっているので注意。 三項演算子次の論理演算子は例外処理などを簡潔に記述できるので、時々使われる。
次のプログラムは何をしているのか。 わかったら、これを使い、$xの絶対値を計算するプログラムを書いてみよう。 $x = ($a > $b)? $a: $b; 文字列演算子
例えば "こんにちは、" . "赤ちゃん。" のように使う。 演算子の優先順位これまで述べてきた演算子は、+より*が先に計算されるなど、 大体数学と同じ優先順位をもっている。 しかし、厳密な順序が問題になる場合もあるので、 ここに優先順位一覧表を挙げておく。 上のものほど優先度が高く、下のものほど優先度が低い (スペースの都合により取り上げなかった演算子も含む)。
()演算子は全てに優先されるので、優先順位が不明の場合、 かっこをつけて使うのがよい。 $x = (($a > 0) || ($b < 0))? ($a + $b): ($a - $b); |
| |サイトポリシー|プロフィール|地図|お問合せ| |
2007- (C) Nishihiroshima.com
|