mixiユーザー(id:2089365)

2019年06月11日19:44

178 view

【PHP】三項演算子

送信側と受信側を1つにしてみる。
別にPOST送信でもできるが、教材に従って、GET送信で
自身に文字列を送信する。

<form>タグのaction属性で「送信先」を指定しなければ、
データは自身に送信される。
なので、<form>にaction属性の記述を外して、送信側と
受信側の記述を1つに書いたphpファイルを作る。

<form>
<input type="text" name="a">
<input type="submit" value="送信">
</form>

上手く表示できないので、?php前の<は全角
<?php
print $_GET["a"];
?>

これをブラウザで開いて、何か文字列を入力して、
送信ボタンを押せば、テキストボックスの下に
文字列が表示される。

そのまま文字列を表示するだけでなく、
何か追加することも可能ということで、
語尾に「ゲソ」を追加するようにしてみる。
さらに最初にページを開いた際には、「何か言わなイカ!」
と表示する。
<form>〜</form>部分は上記のまま。

<?php
print isset($_GET["a"])?$_GET["a"]."ゲソ":"何か言わなイカ!";
?>

print内の「□□?〇〇:△△」というのは三項演算子と言われ、
if文を簡略化したものらしい。
□□が条件。正しければ、〇〇を返し、間違っていれば
△△を返す。
「isset($_GET["a"])」ってのは、引数に指定した変数(ここでは、
$_GET["a"])に値がセットされているかどうか。
なので、最初にページを開いた際はセットされていないので、
条件が間違っている場合の"何か言わなイカ!"となる。
文字列を送信すれば、セットされたので、
条件が正しい場合の$_GET["a"]."ゲソ"→(「.」は前後の文字列を統合)
『文字列ゲソ』となる。

if文は見た目わかりやすいけど、1行で済む場合は三項演算子の方が
すっきりするんだろうな。
0 0

コメント

mixiユーザー

ログインしてコメントを確認・投稿する

<2019年06月>
      1
2345678
9101112131415
16171819202122
23242526272829
30      

最近の日記