タグ

phpとPHP 5.5に関するmiggitのブックマーク (2)

  • PHP 5.5 を使った時にキャッシュが効いてプログラムの変更が即、反映されなかった - 強火で進め

    MacのMAMPで使っているPHPを5.5に変更したらキャッシュが効いてプログラムの変更が即、反映されないという症状が発生しました。 調べてみると PHP 5.5 から OPcache というネイティブキャッシュがデフォルトで有効に成っている為に発生したみたいです。 詳しくはこちらのスライドの5ページ目を参照。 自分がインストールしたのが5.5.3だったので /Applications/MAMP/bin/php/php5.5.3/conf/php.ini を開き、 opcache.enable_cli=0 に変更し、その次の行に opcache.enable=0 を追加し(※)、Apacheを再起動するとちゃんと即、反映される様に ※デフォルト有効なため、デフォルトだと php.ini に記述が無いみたいです。 【最終的な[OPcache]の設定】 [OPcache] zend_exten

    PHP 5.5 を使った時にキャッシュが効いてプログラムの変更が即、反映されなかった - 強火で進め
  • PHPのジェネレータはイテレータより速い - hnwの日記

    先日の記事「PHPのジェネレータの実装を調べてみた」で僕は次のように書きました。 GeneratorクラスはIteratorインターフェースを実装しており、対応するPHPメソッドを持っています。また、Cで実装した場合のみ指定できるイテレータ関数も実装しています。このように両方が指定されている場合、foreachループではCの関数が呼ばれ、イテレータメソッドを明示的に指定した場合はPHPメソッドの方が呼ばれます。 ところで、イテレータに対応するPHPメソッドとC関数となぜ2つとも実装する必要があるのでしょうか。実は、PHPメソッドの方だけ実装すれば正常に動作します。C関数を実装する理由は速度面のメリットからだというのが僕の理解です。C関数は関数ポインタで単に呼び出せるのに対し、PHPメソッドの呼び出しは命令実行器の状態保存・復元の必要があるなど、呼び出しのコストがやや高いのです。 PHPのジ

    PHPのジェネレータはイテレータより速い - hnwの日記
  • 1