PHP 7.2のWarn when counting non-countable typesを試した
PHP 7.2でcount関数にCountableタイプ以外を指定するとWarningが出るようになったということで試してみた。
<?php echo count([1]); // 1 echo count([1, 2, 3]); // 3 echo count([1, null]); // 2 echo count(["one" => 1, "two" => 2]); // 2 echo count(null); // Warning echo count(new StdClass); // Warning echo count(1); // Warning echo count("1"); // Warning class FullName implements Countable { private $firstName; private $middleName; private $lastName; public function __construct(?string $firstName, ?string $middleName, ?string $lastName) { $this->firstName = $firstName; $this->middleName = $middleName; $this->lastName = $lastName; } public function count() : int { $count = 0; foreach (get_object_vars($this) as $val) { if ($val) { $count++; } } return $count; } } // 3 echo count(new FullName("hogeta", "hogehoge", "hogeo"));
Countableのinterfaceを実装し、count関数にインスタンスを指定するとそのクラスのcountメソッドがコールされる仕組み。
Countable自体使うのはお初だったのでその動きを知れたのはよかった。
HerokuでPHPのバージョンを指定する
Symfony Flexを試したい、ただHerokuのPHPバージョンは5.6.34かー、うーんと呟いたところ@hiro_yさんから素敵なアドバイスをいただいたので試してみた。
Herokuだと普通にPHPのバージョン指定できますよ、composer.jsonに書けば。
— Hiroyuki Yamaoka / 山岡広幸 🐰 (@hiro_y) 2017年11月29日
方法
composer.jsonのrequire
にPHPのバージョンを指定する。これだけ。
{ "require": { "php": "^7.1.0" } }
HerokuがサポートしているPHPのバージョンはコチラ https://devcenter.heroku.com/articles/php-support#supported-versions
PHP 7.2が、もうじきリリースされるのでHeroku対応が楽しみ。
あとは、composer update
でcomposer.lockファイルを作ってHerokuにデプロイすれば反映される。
デプロイ中...
デプロイ後のphpinfo();
めでたしめでたし