PHPに慣れる為に週1ぐらいで更新していきます。PHP Manualを読んで実験して行きます。
演算子#1
演算子の優先順位
気になったところは、ここですね。
演算子の優先順位や結合性は、あくまでも式のグループ分けだけを決めるものであり、評価順を決めるものではありません。 PHP では一般に 、式をどの順番で評価するかは決めていません。 そのため、特定の順序で式が評価されることを前提としたコードを書いてはいけません。 PHP のバージョンが変わったり前後のコードが変わったりしたときに、評価順が変わる可能性があるからです。
<?php
$hoge = 1;
echo $hoge + $hoge++;
++
の演算子が、他の言語のように式が評価された後に実行されるとは決められていないので上記のスクリプトは1,2のどちらを返すのかは決め られていない。ということになります。
代数演算子
+-*/%
などのことですが、言われないと分からないのは以下ですね。
$a を、必要に応じて int あるいは float に変換する
<?php
$hoge = 1;
echo +$hoge;
比較演算子
ここだと、良く見かける==
と===
は何が違うのかというところが分かります。
$a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。
$a が $b に等しく、および同じ型である場合に TRUE 。
型変換をした上で、等しいか、型をチェックして等しいかの違いですね。
例にもでていますが、こういうケースが真になるかならないかというところが違いとなっています。
<?php
var_dump( "1" == "01" );