2016-02-17 24 views
4

當我使用PHP 5.6(從WampServer 2.4未來)我得到這個令人困惑的結果在Windows上運行的腳本:Windows上的PHP_BINDIR不正確?

$binary = PHP_BINARY; // $binary: "C:\wamp\bin\php\php5.6.15\php.exe" 
$bindir = PHP_BINDIR; // $bindir: "C:\php" 

PHP_BINARY是正確的,但PHP_BINDIR是完全錯誤的。後者是否被棄用或者是什麼?任何其他想法爲什麼它會輸出一些甚至不存在於我的磁盤上的隨機路徑?

+0

你能分享腳本嗎? –

+0

這是腳本。我聲明瞭兩個變量,並將其作爲PhpStorm的單元測試運行。 (顯示在右邊的變量內容是PhpStorm的調試功能。) – Borek

+0

我希望[這個答案](http://stackoverflow.com/questions/3889486/how-to-get-the-path-of- -php-bin-from-php)將會很有幫助。 –

回答

4

PHP_BINARY運行時(當執行腳本)

PHP_BINDIR設定的值上編譯時設定的值,而不是在運行時。

該路徑被設置爲在configure中使用的前綴(Linux相當於:./configure --prefix <path>)。窗口上的默認路徑是C:\php。你不能在沒有重新編譯PHP的情況下改變它。

要獲得路徑,您應該追蹤PHP_BINARY

0

問題在於編譯時根據php-internals/11c783wgty/bug-54514設置的PHP_BINDIR。這表明這可能會在稍後的日期發生變化。

在編譯時設置的任何東西都會與至少我們的Windows用戶無關,因爲我們通常依靠別人來編譯,因爲Windows沒有免費的編譯器。據我可以告訴這將適用於在unix機器上編譯的php以及windows機器,因爲沒有理由是積極的,PHP正從編譯到的位置運行。

因此,不要使用PHP_BINDIR來查找當前可執行文件的運行位置。

相關問題