PHP: 定義済みの定数 - Manual
http://php.net/manual/ja/reserved.constants.php の補足。
phpコマンドのあるディレクトリ名、PHP_BINDIR はビルド時にもう決まっています。PHP_PREFIX + '/bin' と同じ意味です。
いっぽう、5.4から増えている PHP_BINARY は実行時に決まります。
Mac homebrew の場合
~% /usr/local/bin/php -r 'echo PHP_PREFIX . "\n";'
/usr/local/Cellar/php55/5.5.4
~% /usr/local/bin/php -r 'echo PHP_BINDIR . "\n";'
/usr/local/Cellar/php55/5.5.4/bin
~% /usr/local/bin/php -r 'echo PHP_BINARY . "\n";'
/usr/local/Cellar/php55/5.5.4/bin/php
HomebrewはXcodeのgccで自力ビルドするので問題ないです、が...
WIndows バイナリインストールの場合
C:\>C:\php55\php.exe -r "echo PHP_PREFIX;"
C:\php
C:\>C:\php55\php.exe -r "echo PHP_BINDIR;"
C:\php
C:\>C:\php55\php.exe -r "echo PHP_BINARY;"
C:\php55\php.exe
php55フォルダに展開したバイナリは、実はphpフォルダでビルドされていた。で、ランタイムに決まるものとビルド時に決まるものとで差が出た。
PHPスクリプトから 同じインタプリタで 別のphpコマンドを実行したい場合、注意が必要です。
5.3以下では「ランタイムに決まるインタプリタのパス」を得ることができないので、コマンドにパスが通っていることを期待するしかない...のかなぁ。