2012-08-06 90 views
0

快速的問題:爲什麼下面總是比較爲假,儘管在打印時都顯示22?不,這個常量沒有用引號定義int。整數常量不等於常規整數?

<?php 
... 
if(count($_POST) != _NUM_TEAM_REG_FORM_FIELDS_) 
    $fields = $_POST; 
else die(Core::FormatError("Incorrect number of form fields.")); 

?> 

謝謝!

+2

你是如何定義常量的? – 2012-08-06 22:26:09

+1

像這樣:define(「_ NUM_TEAM_REG_FORM_FIELDS_」,22);請注意,此網站會在常量標識符前後自動省略下劃線。 – Lee 2012-08-06 22:26:49

+0

請添加兩者的var_export,然後您可以看到它們是否是字符串。另外我想你做了一個編輯,把'!=='改成'!='? – 2012-08-06 22:26:50

回答

3

Why does the below always compare as false, despite both showing 22 when printed? 因爲你有錯誤地比較它。 (即已經使用!=代替==)

嘗試下面的代碼代替,

if(count($_POST) == _NUM_TEAM_REG_FORM_FIELDS_) 
    $fields = $_POST; 
else die(Core::FormatError("Incorrect number of form fields.")); 

注意,我比較了它們作爲公平的。

+1

好悲傷。我只是意識到。這會教我如何使用頭痛和止痛藥!多麼尷尬。謝謝。 – Lee 2012-08-06 22:33:27

+0

不要擔心它發生。 :) – Kalpesh 2012-08-06 22:34:18

+0

嗨@Lee,別忘了接受答案:P – Kalpesh 2012-08-06 22:35:58