webForumDet fria alternativet

Bugg i array_search?

2 svar · 168 visningar · startad av sabbacus

sabbacusMedlem sedan juli 2002630 inlägg
#1

Fet bugg i PHP?
Testa den här koden och säg sedan om jag gjort fel eller om det är en bugg i funktionen?
http://se.php.net/manual/en/function.array-search.php

$haystack = array(1, 2, 3, 4, 5, 6, 7);
$needle = 1;
$dare = array_search ( $needle, $haystack );
if ( $dare != false ) 
{
	echo "I dare!";
}
else
{
	echo "I am a chicken!";
}

[EDIT]Tillägg: Jag kör PHP 4.3.2[/EDIT]

MatteMedlem sedan aug. 20002 975 inlägg
#2

För mig fungerar den precis som den ska. Jag får utskriften "I am a chicken!".

array_search returnerar på vilket index träffen blir. Du hittar 1 på första index, alltså index 0 (noll), vilket också sparas i $dare.
Med PHP:s typomvandling blir det samma sak som om man inte hade hittat något. Du borde kanske istället gjort jämförelsen:

if ( $dare !== false )

Annars.Det är inte möjligtvis detta du söker:

$dare = in_array ( $needle, $haystack );

Jag kör också 4.3.2

sabbacusMedlem sedan juli 2002630 inlägg
#3

Det är typomvanlignen som gjorde att det inte funkade för mig :-)
Man lär sig ngt nytt varje dag.
Tackar!

123 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)