Eğer array_search PHP düzgün çalışması için üçüncü parametre gerekli bir örnek var mı?

3 Cevap php
mixed array_search  ( mixed $needle  , array $haystack  [, bool $strict  ] )

If the third parameter strict  is set to TRUE  then the array_search() function will also check the types of the needle  in the haystack . 

Ben bunun ne anlama geldiğini görmek, belki bir örnek yardımcı olabilir değil mi?

3 Cevap

Son argüman doğruysa, kullanımı strict (also known as identity) comparison (===) dizi ararken. Olacak

Eşitlik karşılaştırma (==) kimlik karşılaştırma (===) değeri ve türü karşılaştırır değerini karşılaştırır.

'0' == 0 ; //true, the string is converted to an integer and then the are compared.
'0' === 0; //false, a string is not equal to a integer

Bu soruya daha fazla bilgi bulabilirsiniz How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?

Bu demektir ki eğer sayılar bir dizi olsaydı

$a = array(0,1,2,3,4);

Dize değeri '2' değeri ile hiçbir dizeleri olarak (bir eşleşme bulmak değil) return false için sıkı bir karşılaştırma kullanılarak '2'.

array_search('2', $a, true); //returns false

Ancak sıkı bir arama yapmazsak, dize örtülü bir tamsayı (ya da tersi) dönüştürülür ve gibi 2 == '2' o 2 dizinini döndürür

array_search('2', $a, false); //returns 2

Üçüncü parametre da types İğne ve haystack elemanlarının kontrol işlevini anlatır (örneğin katı bir karşılaştırma kullanmak için ===).

<?php

$needle = "2"; //a string
$haystack = array (1,2,"2","test");

$search = array_search  ($needle  ,$haystack,  false);

// Will output 1, as it is the key for the second element of the array (an integer)
print_r($search);


$search = array_search  ($needle  ,$haystack,  true);

//Will output 2, as it is the key for the third element of the array (a string)
print_r($search);

?>

Array_search üçüncü argüman sıkı tür denetimi için kullanılır.

Üçüncü argüman yanlış Örneğin, 123 ==> true "123" eşittir

Üçüncü argüman doğruysa, 123 iki farklı tür vardı beri ==> "123" eşit değildir.