2017-05-12 53 views
0

數組元素我想比較數組元素還判定是否0或1。我想選擇我的is_answer_accepted由該函數返回is_answer_accepted($aid)比較PHP

if($is_answer_accepted['is_answer_accepted'] === 0) { 
    delete_all_answer_as_solved($_GET['question']); 
    mark_question_as_solved($_GET['answer'], $_GET['question']); 
} 

if($is_answer_accepted['is_answer_accepted'] === 1) { //Debugger message: $is_answer_accepted: {is_answer_accepted => 0}[1] 
    delete_answer_as_solved($_GET['answer'], $_GET['question']); 
} 

我點擊一個非接受的答案(已確認),因此我is_answer_accepted應爲0。不知怎的,我比較失敗,$is_answer_accepted['is_answer_accepted'] = 1將返回即使壽是真的肯定是0

function is_answer_accepted($aid) { 
    global $conn; 
    $query=$conn->prepare("SELECT is_answer_accepted FROM is_answer_accepted(:aid)"); 
    $query->execute(array($aid)); 


    return $query->fetch(); 
} 

當我做這個查詢我返回1,如果solved_date != NULL和否則爲0。

CREATE OR REPLACE FUNCTION is_answer_accepted(aid INT) 
    returns INTEGER 
LANGUAGE plpgsql 
AS $$ 
DECLARE date_solved TIMESTAMP; 
    DECLARE answer_accepted INTEGER; 
BEGIN 
    SELECT solved_date FROM answers WHERE answers.publicationid = aid 
    INTO date_solved; 

    IF date_solved is null THEN 
    answer_accepted := 0; 
    ELSE 
    answer_accepted :=1; 
    END IF; 

    return answer_accepted; 
END 
$$; 

的迴應是:

is_answer_accepted 
------------------ 
       0 
(1 row) 

任何想法比較是怎麼錯了?

親切的問候

+0

的可能的複製[3周不同的equals(http://stackoverflow.com/questions/2063480/the-3-different -equals) – Qirel

+1

'if($ is_answer_accepted ['is_answer_accepted'] = 0){'表示您*賦值0給變量。看標誌的笨蛋。您需要使用'=='或'==='進行比較(嚴格比較)。 – Qirel

+0

'='聲明瞭變量,'=='會做一個寬鬆的比較,'==='是一個嚴格的比較。我記不起它的來龍去脈,但我認爲'=='可以處理dataTypes,其中'==='必須匹配dataType和value。 – ThisGuyHasTwoThumbs

回答

0
if($is_answer_accepted['is_answer_accepted'] == 0) { 
    delete_all_answer_as_solved($_GET['question']); 
    mark_question_as_solved($_GET['answer'], $_GET['question']); 
} 

if($is_answer_accepted['is_answer_accepted'] == 1) { //Debugger message: $is_answer_accepted: {is_answer_accepted => 0}[1] 
    delete_answer_as_solved($_GET['answer'], $_GET['question']); 
} 

你的if語句包括分配不comparssion

+1

請避免回答明顯與現有問題重複的問題。另外,沒有解釋的代碼轉儲不是一個好的答案。 – Qirel