2015-09-02 49 views
-1

所以我是PHP的新手,與我用過的其他語言相比,PHP中的一些東西對我來說沒有任何意義。PHP!==很混亂,沒有意義

我的代碼目前

$secret = $_POST['secret']; //HTML input to enter secret code to unlock easter egg 
$theSecret = "1234"; //Pre-defined test code 

enter code here 
if($secret !== $theSecret){ 
echo "You got the secret wrong!"; 
exit;} 

現在,在C++或C#這樣的工作是有意義的,但然而,在PHP,當我使用!==它總是等於真實的,當我使用===就好像沒有任何東西被檢查,因爲它總是通過。

我想要實現的是如果代碼是正確的,那麼我可以繼續,如果它不正確,然後終止連接。有什麼我不知道我做錯了嗎? PHP對我並不好,我感謝大家的幫助。

+0

你的聲明均屬不實。你必須給出'$ _POST ['secret']'。如果兩者都是「1234」,那麼===爲真,!==爲假。 – AbraCadaver

+0

如果一個是整數,另一個是字符串,當然它們不是完全相同的,這就是'==='檢查的內容。做'$ theSecret =(int)「1234」;'會將字符串轉換爲整數,** IF ** POST數組是一個整數。將它作爲一個字符串轉換(整型)'$ theSecret =(string)1234;'當POST數組是一個字符串時,將對'$ theSecret =「1234」;'爲TRUE。 [** RTFM **](http://il.php.net/manual/en/language.operators.comparison.php) –

回答

-1

使用

如果($祕密!= $帶來的靈活性secret)

!如果他們的類型是相同的,當你比較變量==是最常用的

+0

不要解釋沒有投票,這個網站主要是學習不發佈代碼gd。 @ Newbie.Ridick您的陳述是虛假的 –

+1

我需要125點聲望才能投票選舉先生。 @GRC –

+0

我告訴一個下來投票你的問題的人,我的評論的第二部分與你的答案有關。 –

2

triple ='s表示它也匹配數據類型。

例如

$x=0; 
if($x==false) returns true; 
if($x===false) returns false; //different datatype 

if($x=='0') returns true; 
if($x==='0') returns false; //different datatype 

$y=0; 
$z=1; 
if($x===$y) returns true; //same datatype and value 
if($x===$z) returns false; //different value