LoginSignup
1
0

More than 5 years have passed since last update.

PHP Manual 読書会(5回目)(演算子#1)

Last updated at Posted at 2017-06-04

PHPに慣れる為に週1ぐらいで更新していきます。PHP Manualを読んで実験して行きます。

前回: PHP Manual 読書会(4回目)(定数)

演算子#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" );
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0