読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

PHPのceil()って関数の返り値はfloatなことに注意

PHP

スポンサードリンク

マニュアルを読んでみるとすぐわかることだったのに(´・ω・`)ショボーン


PHP: ceil - Manual

<?php

$initTest = new InitTest();

/**
 * floatとint型を値&型チェック(===)しているので
 * この条件分岐はfalseになる
 */
if ($initTest->getLine() === 1) {
    echo "true".PHP_EOL;
} else {
    echo "false".PHP_EOL;
}
?>

<?php
class InitTest {
    private $line;

    function __construct() {
        // ここの型はfloatになる
        $this->line = ceil(2/2);        
    }

    public function getLine() {
        return $this->line;
    }
}
?>


その場合、int型へキャストしてあげれば良い。

<?php

    function __construct() {
        // ここの型はfloatになるので、int型へキャストする。
        $this->line = (int) ceil(2/2);        
    }


これでおk