Eclipse PDT (PHP Development Tool) - Tips?

XAMPP で ZendDebugger を

ZendOptimizer と ZendDebugger を共存させる場合…
xampp\php\zendOptimizer\lib の下にでもデバッガ用フォルダを作成し、

xampp\php\zendOptimizer\lib\Debugger\php-5.2.x
ここに ZendDebugger-xxx\5_2_x_comp 下の ZendDebugger.dll をコピーする。 php.ini には以下のように記述。
zend_extension_manager.debug_server_ts = c:\xampp\php\zendOptimizer\lib\Debugger
(「php-{バージョン}」は固定っぽいので…)

もちろん、ZendDebugger-xxx 下の 5_2_x_compphp-5.2.x にリネームして、 php.ini に ZendDebugger-xxx を指定するのもアリ。

Debug/Variables ビューで配列に新しい要素を(ZendDebuggerのみ)

デバッグ時、配列に新しい要素を追加したい場合。例えば $_POST にデバッグ用に value=1 を追加したい場合、Variables ビューでは $_POST は Arrays[0] になっているが、ここに(もしくは Change Value で)次のように入力。

array('value'=>1)
要するにPHP文を記述してやれば、ちゃんと代入される。ただ、あくまでも代入なので、配列が既に値を持っている場合の追加は、例えば次のように入力する必要がある。
array_merge($_POST, array('value'=>1))
array_push などは戻り値(つまり代入される値)が int(要素数)なのでうまくいかない。(例えば「array_push($array, 123) > 0 ? $array : $array」のようなトリックは可能)
また、要素の削除は、単純配列なら array_splice が使えるが、連想配列では削除したい要素を除いた新しい配列を作る以外にどうも方法が無いっぽい。


back