メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

PHP IF文 条件式が2つある場合の評価

if文は色んなとこで紹介されてますが、
ちょっと変わった使い方しようとすると困ります。

if文でよくはまりました。
なぜなら条件が分からないから。
今日はその話をするわけじゃないですけど。条件調べる方法を書きます。
基本的に条件式を評価するのがIF文です。

分からないときはvar_dumpかなんかでbool値が返るようにに仕向けます。
極端にやるとこんな感じに。

</p>
<p>&lt;?php</p>
<p>$a = 'abc';<br />
$b = 'abc';</p>
<p>var_dump($a === $b);</p>
<p>

IF文は真偽値を判断する構文

条件を評価するのがIF文です。
だから条件はさっき書いたように、真偽値が返る様に仕向けてやる必要があります。

つまり、trueかfalseが返るように式を作ります。
式を作るのは自分です。
さっきのを使うとこうなります。

</p>
<p>&lt;?php</p>
<p>$a = 'abc';<br />
$b = 'abc';</p>
<p>if($a === $b)<br />
{<br />
	echo $a;<br />
}</p>
<p>if(!empty($a))<br />
{<br />
	echo 'あのびっくりマークつけると否定になります。違う場合真になります。';<br />
}</p>
<p>

色んな比較の仕方があります。

さっきのは変数同士を完全一致で比較しました。
数字とかでも比較する事ができます。

</p>
<p>&lt;?php</p>
<p>$a = 0;<br />
$b = 5;</p>
<p>if($a &lt; $b)<br />
{<br />
	echo '$bのが大きいぞ';<br />
}</p>
<p>

みたいな条件でも式の結果がbool値になるので比較ができます。

二つの式を比較する場合

1個だけしか比較できないといろいろ融通が利かないので、
式を二つ比較することができます。

式を二つ比較する際には、orかandの演算子を用います。

orは||

andは&&

別にこれどっちでも良いらしいですけど、
僕は演算子しか使った事ないです。

</p>
<p>$a = 'abc';<br />
$b = 'abc';<br />
$c = 'abc';<br />
$d = 'abc';</p>
<p>//左辺が真でかつ、右辺が真の場合</p>
<p>// 左辺true     右辺true<br />
if(($a === $b)&amp;&amp;($c === $d))<br />
{<br />
	echo '左辺、右辺両方の値が真なので、これは表示されます。';<br />
} else if(($a === $b)||($a === $b)) {<br />
	echo 'これは、左辺か右辺、どっちかが真なら表示されます。';<br />
}</p>
<p>

論理演算子で評価した式を比較することもできる

なんか適当な言葉が見つかりませんが、
さっきみたいに二つの式を一塊にして評価することもできます。
たとえばこんな感じに。

<br />
&lt;?php<br />
$a = 'abc';<br />
$b = 'abc';<br />
$c = 'abc';<br />
$d = 'abc';<br />
$e = 'abc';<br />
$f = 'abc';<br />
$g = 'abc';<br />
$h = 'abc';</p>
<p>  ↓  真かつ真       ↓かつ↓     真かつ真の場合  ↓<br />
if((($a === $b)&amp;&amp;($c === $d))&amp;&amp;(($e === $f)&amp;&amp;($g === $h)))<br />
{</p>
<p> echo '括弧で括って式を一塊にできます。';</p>
<p>}</p>
<p>

普通だよねって話ですが、こういう比較の仕方知らないと

</p>
<p>$a = 'abc';<br />
$b = 'abc';<br />
$c = 'abc';<br />
$d = 'abc';<br />
$e = 'abc';<br />
$f = 'abc';<br />
$g = 'abc';<br />
$h = 'abc';</p>
<p>// ↓ここ真↓かつ↓ここ真↓かつ↓ここ真↓ かつ↓ここ真↓<br />
if(($a===$b)&amp;&amp;($b===$c)&amp;&amp;($d===$e)&amp;&amp;($f===$g))<br />
{<br />
	echo 'こうならいいですが';<br />
}</p>
<p>// ↓ここ真↓ か↓ここ真 ↓かつ↓ここ真↓かつ↓ここ真↓<br />
if(($a===$b)||($b===$c)&amp;&amp;($d===$e)&amp;&amp;($f===$g))<br />
{<br />
	echo 'こうorとか入った時に意図しない結果になります。この場合は真ですけど';<br />
}</p>
<p>

やってて気がついたんですが、これ、式が1個になるからなんですね。いやこれなってねぇ

本とかちゃんと読んでないと、説明できませんね。
経験値の話ですかね。勉強不足か。精進します。

関連記事

  1. PHPサムネイル
  2. PHPサムネイル
  3. PHPサムネイル
  4. PHPサムネイル

コメントをお待ちしております