比较php中的数组元素
我想将数组元素与0或1进行比较。为此,我想选择函数比较php中的数组元素,php,Php,我想将数组元素与0或1进行比较。为此,我想选择函数is\u answer\u accepted($aid)返回的我的is\u answer\u accepted 我正在单击一个未被接受的答案(已确认),因此我的已被接受应该为0。不知何故,我的比较失败了,$is\u answer\u accepted['is\u answer\u accepted']=1返回true,即使它肯定是0 function is_answer_accepted($aid) { global $conn;
is\u answer\u accepted($aid)
返回的我的is\u answer\u accepted
我正在单击一个未被接受的答案(已确认),因此我的已被接受应该为0。不知何故,我的比较失败了,$is\u answer\u accepted['is\u answer\u accepted']=1
返回true,即使它肯定是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();
}
执行此查询时,如果solved\u date!=空
,否则为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)
你知道这个比较是怎么错的吗
问候
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语句包括赋值不比较if($is\u answer\u accepted['is\u answer\u accepted']=0)的可能重复项{
表示将值0赋值给变量。请查看标记的重复项。您需要使用=
或==
进行比较(严格比较).=
声明变量,=
将进行松散的比较,==
是严格的比较。我记不起细节,但我认为=
对数据类型做了一些处理,==
必须匹配数据类型和值。@Thisgy有两个拇指,就像dupe说的,=
只会比较值。这可能会得到一些奇怪的响应,因为“string”==true
实际上会返回一个true比较。==
需要相同的值和相同的数据类型。因此“1”===1
将失败,因为它是一个字符串和一个整数。@Qirel啊,所以我的直觉是正确的-只是没有确认哈哈,谢谢:)请避免回答与现有问题明显重复的问题。此外,没有解释的代码转储不是一个好答案。
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']);
}