(문제 오프셋) 제대로 작동하지 :니들은 내가이 기능을 가지고 여기
public function strposa($haystack, $needles=array(), $offset) {
$chr = array();
foreach($needles as $needle) {
$res = strpos($haystack, $needle, $offset);
if ($res !== false) $chr[$needle] = $res;
}
if(empty($chr)) return false;
return min($chr);
}
을 그리고이 하나
function usernameCurseWords($name) {
$string = $name;
$array = array('bad', 'words', 'are', 'here');
if (parent::strposa($string, $array, 0)) {
return true;
}
}
나는 다음과 같이 호출 :
if ($this->usernameCurseWords($username)) { throw new Exception($error['userCurseWords']); }
건초 더미가 "1bad"이면이 함수는 true를 반환합니다 ("bad"는 바늘입니다).
그러나 건초 더미가 "badblablbla"이면 함수는 false를 반환합니다.
이것이 올바르게 작동하지 않는 이유는 무엇입니까?
나는 또한 어디서나 오프셋없이 시도했지만 여전히 동일합니다. –
뭔가를 반환하는 한 반환하는 것이 중요하지 않으므로 'min ($ chr)'대신 true 또는 false를 반환합니다. 나는 당신이'parent :: strposa ($ string, $ array, 0)'에서 거짓으로 평가 될 경우 0을 반환한다고 믿는다. – asafreedman
감사합니다. –