2011-12-05 37 views
0

我有工作,我對於Linux服務器,當我已經使用WAMP本地測試已開始得到形式php窗口未定義常量錯誤 - 在Linux上工作?

Notice: Use of undefined constant fullName - assumed 'fullName' 

的代碼是奇怪的Xdebug錯誤代碼開發...

$allVars = array(
    fullName=>$fullName, 
    telephone=>$telephone, 
    email=>$email, 

    fAddr=>$fAddr, 
    tAddr=>$tAddr, 
    sngRtnSelect=>$sngRtnSelect, 
    oDate=>$oDate, 
    rDate=>$rDate, 
    tAdditional=>$tAdditional, 
    noPassengers=>$noPassangers, 
    vehicleType=>$vehicleType, 
    distance=>$distance, 
    priceTot=>$finalPrice 

); 

我認爲上述是一個簡單的數組定義。任何人都可以闡明爲什麼這些錯誤出現在WAMP而不是Linux服務器上?

如果我錯過了某些明顯的東西,那麼我的道歉,但是這是在linux/apache服務器上工作的相同代碼。謝謝。

回答

4

如果你正在定義一個字符串鍵,那麼你應該把它放在引號內。像這樣:

$arr = array ('some_key' => 'some_value') 

但是,當你使用整數時,你不應該使用引號,否則你會創建一個字符串。

$arry = array ('0' => 'this is a string key because it has quotes around.', 
       0 => 'this is an integer key because it has not quotes around.'); 

順便說一下,當您不使用引號來表示字符串值時,這意味着您引用了已定義的變量。

define ('name', 'Savas Vedova'); 
echo name; // this will print Savas Vedova to the screen. 
+0

非常感謝您,就是這樣。然而,特別的是,PHP的PHP版本更加寬容。乾杯。 –

+1

@GHarping不客氣。那麼,我不確定是否是因爲linux更寬容,但我相信你的設置與你使用的其他版本不同。檢查你的php.ini中的error_reporting設置,看它們是否與其他版本類似。 –

1
$allVars = array(
'fullName'=>$fullName, 
'telephone'=>$telephone, 
'email'=>$email 

);

你應該使用'< =這一點;)

+0

感謝那 –

0

都是正確的,使用引號。此外,這不是一個錯誤,但通知。當然,你有一個包含E_NOTICE的error_reporting的php.ini,所以通知顯示出來了(最終,PHP解釋器假定是正確的,即使你做錯了!)[但是請請,做對,不要偷懶!!! :P]

http://php.net/manual/en/function.error-reporting.php

也許,WAMP默認是比Linux默認那麼寬容

+0

好點,我會的! –

0

直接回答你的問題......

可能有人能夠解釋爲什麼這樣的錯誤出現光在WAMP上,而不是在Linux服務器上?

您的服務器在其配置文件中定義了不同級別的錯誤報告。

有問題的郵件是E_NOTICE級別錯誤。

請參閱http://php.net/manual/en/errorfunc.configuration.php