Monthly Archives: 4月 2017

[PHP7.1]タイプヒンティングで関数の戻り値にvoidを指定したときのふるまい

2017年4月16日 (カテゴリ: PHP:)

PHP7.1では、タイプヒンティングで関数の戻り値で値を返さないことを明示するために、voidの指定が可能です。 voidを指定したときに、正しく実行できるコード、エラーが出るコードを確認してみました。 下記はOKパターンです。 <?php // OK: return文に戻り値を指定しないコードは正しく実行できる function foo_ok2() : void { return; } // OK: return文自体を書かなくてもよい function foo_ok1() : void { // do nothing. } 一方、下記コードはNGです。 // NG: “void”のタ…


続きを読む

[PHP]関数の戻り値にnull値の許容をタイプヒンティングさせる方法

2017年4月14日 (カテゴリ: PHP:)

PHP7では、関数の戻り値の方を制限するためのタイプヒンティング機能が追加されました。 PHP7.1では、このタイプヒンティングに対して、さらに”指定された型、もしくは、null”が返されること強制する、null許容型のタイプヒンティング機能が追加されました。 例えばstring or nullのreturnを強制したい場合、下記サンプルコードのように”?string”先頭へ”?”を付ければOKです。 <?php function foo($option) : ?string { if ($option == 1) …


続きを読む

[PHP]無名関数を定義して、即時実行したい場合は?

2017年4月12日 (カテゴリ: PHP:)

javascriptでは、オブジェクトの名前空間の問題により、無名関数を作ったうえで、作成した無名関数を即時実行したい場合が多くあります。 phpで同様の事を行いたい場合、どのような記述を行えばよいでしょうか? php7.0以降の場合は、javascriptと同様に下記のコードで実行することもできます <?php (function() { echo ‘hello world’; })(); php5.xのバージョンしか使えない場合は、上記のコードほどシンプルではありませんが、下記のコードで無名関数を即時実行可能です。 <?php call_user_func(function()…


続きを読む

[PHP]PHP7実行時、VCRUNTIME140.dll is missingエラーが出るとき

2017年4月10日 (カテゴリ: PHP:)

windowsでphp7を実行したとき、下記のエラーが出る場合があります。 Unable to start the program as VCRUNTIME140.dll is missing on your computer. Try reinstalling the program to fix this problem. 無いと出力されているVCRUNTIME140.dllですが、これはVisual C++ Runtime14.0の意味です。 ダウンロードページを見ると、下記の通りたしかにランタイムが必要との記載があります VC11, VC14 & VC15 More recen…


続きを読む

[PHP]composerのインストールでUnable to find the wrapper “https”エラー

2017年4月8日 (カテゴリ: PHP:)

PHPでcomposerをインストールしようとしたとき、以下のようにUnable to find the wrapper “https”エラーが出る場合があります。 >php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);” Warning: copy(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP? in Command line code on line 1 W…


続きを読む