PHP 4.3.10
PHP 4.3.10 で既存のプログラムが動かない危険性があるようだ。どうもChangeLogにある
Backported Marcus' foreach() speedup patch from PHP 5.x.
が結構危ないみたい。
私の環境でも 4.3.9 -> 4.3.10 にしたら、NuSOAP 1.67 が動作しなくなった。Zend studioをインストールしたときに、Zend Optimizer(2.1.0)が入ったのが原因らしい。(php.iniでZend Optimizerを外したら、NuSOAPは動作するようになった。)
その時、試しにデバッグしてみたら、やはりforeachの挙動がおかしかった。wsdlクラスのgetOperationData()というメソッドで、
foreach(array_keys($this->bindings[ $portData['binding'] ]['operations']) as $bOperation) {
というのがあって、array_keys()で返ってくるのはstringの配列なんだけど、$bOperationにはstringでなく、
array(2) { [0]=> string(9) "XXXXXXXXX" [1]=> int(0) }
が入っていた。
なお上記はWindowsでの話で、SolarisやPHP Acceleratorとの組み合わせについては試してないです。
- スラッシュドット ジャパン | PHP 4.3.10, 5.0.3リリース
http://slashdot.jp/security/04/12/16/1427239.shtml?topic=56