Position actuelle: Accueil> Derniers articles> Comment utiliser le type du deuxième paramètre de la fonction strRist? Explication détaillée de la différence entre les chaînes et les tableaux

Comment utiliser le type du deuxième paramètre de la fonction strRist? Explication détaillée de la différence entre les chaînes et les tableaux

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n&#39;a rien à voir avec le contenu de l&#39;article,Il peut s&#39;agir d&#39;une initialisation du programme ou d&#39;un autre contenu</span></span><span>
</span><span><span class="hljs-comment">// Par exemple, définir le fuseau horaire</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * stristrComment utiliser le deuxième type de fonction de paramètre?
 * Explication détaillée de la différence entre les chaînes et les tableaux
 *
 * existerPHPmilieu,stristr函数用于exister字符串milieu查找某个子串,et renvoyer la pièce de la première occurrence de la sous-chaîne à la fin de la chaîne。
 * Son utilisation de base est:
 * string stristr(string $haystack, string $needle, bool $before_needle = false)
 * 其milieu:
 * - $haystack La chaîne est-elle recherchée
 * - $needle est la chaîne à trouver
 * - $before_needle Facultatif,Sitrue,Puis retournerneedleLa partie précédente
 *
 * Cependant,Certains développeurs seront confus:stristrLe deuxième paramètre peut-il être transmis à un tableau?Ou quelle est la différence entre passer un tableau et passer une chaîne?
 *
 * un、stristrLa deuxième limitation de type de paramètre
 * stristrLe deuxième paramètre de la fonction doit être de type de chaîne,Impossible de passer les tableaux。Si passer dans un tableau,PHPRapportera une erreur:
 * Warning: stristr() expects parameter 2 to be string, array given
 *
 * donc,À proprement parler,stristrSeules les chaînes sont acceptées comme le deuxième paramètre。
 *
 * deux、Pourquoi y a-t-il un malentendu des tableaux de passage?
 * Dans certains scénarios,开发者想用多个关键词去搜索字符串是否包含其milieu任意un个,Sistristr只能un次查un个字符串。
 * À ce moment-là,Une pratique courante consiste à utiliser des tableaux pour stocker plusieurs mots clés,然后遍历数组逐un调用stristrFaire un match。
 *
 * trois、Comment réaliser des mots multi-touches(Simuler l&#39;effet du tableau)
 * L&#39;exemple de code est le suivant:
 */</span>

</span><span><span class="hljs-variable">$keywords</span></span><span> = [</span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-string">'orange'</span></span><span>];
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">"I like banana and orange juice."</span></span><span>;

</span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$keywords</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$word</span></span><span>) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$text</span></span><span>, </span><span><span class="hljs-variable">$word</span></span><span>) !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-variable">$word</span></span><span>;
        </span><span><span class="hljs-keyword">break</span></span><span>;
    }
}

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$found</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Trouver des mots clés:<span class="hljs-subst">$found</span></span></span><span>\n";
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"没有Trouver des mots clés。\n"</span></span><span>;
}

<span class="hljs-comment">/**
 * Quatre、Résumer
 * - stristr的第deux个参数必须是字符串,Impossible de passer directement les tableaux。
 * - Si une correspondance de mots clés est nécessaire,Vous pouvez traverser le tableau vous-même,Appelez un par unstristrJugement。
 * - 这样可以灵活地Jugement字符串是否包含任un多个关键词。
 *
 * cinq、Autres fonctions connexes
 * - stripos: Trouver des emplacements de chaînes dans le cas de l&#39;insensible,第deux个参数也是字符串。
 * - preg_match: L&#39;appariement de mots à clé peut également être réalisé grâce à des expressions régulières,Par exemple, utiliserpattern /(apple|banana|orange)/i。
 *
 * Ce qui précède eststristr函数第deux个参数的类型用法及字符串和数组区别的详细说明与示例。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>