PHP 경고에 대한 해결 방법: strpos()에 잘못된 인수가 제공되었습니다.

WBOY
풀어 주다: 2023-06-22 16:42:01
원래의
1421명이 탐색했습니다.

PHP를 사용하여 개발할 때 PHP 경고: strpos()에 잘못된 인수가 제공되었다는 오류 메시지가 자주 표시됩니다. 이 오류의 의미는 strpos() 함수에 전달된 매개변수가 유효하지 않아 함수가 정상적으로 작동하지 않는다는 것입니다. 이번 글에서는 이 문제의 원인과 해결 방법에 대해 알아보겠습니다.

  1. strpos() 함수란 무엇인가요?

잘못된 해결책에 대해 논의하기 전에 먼저 strpos() 함수를 이해해 봅시다. strpos() 함수는 문자열에서 다른 문자열이 처음 나타나는 것을 찾고 해당 인덱스 값을 반환하는 데 사용됩니다. 구문은 다음과 같습니다.

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
로그인 후 복사

이 함수의 첫 번째 매개변수는 찾을 기본 문자열이고 두 번째 매개변수는 기본 문자열에서 찾을 하위 문자열이며 세 번째 매개변수는 선택 사항으로 시작 위치를 지정하는 데 사용됩니다. 검색의.

  1. 문제 원인

strpos() 함수를 호출할 때 올바른 매개 변수를 전달해야 합니다. 그렇지 않으면 strpos()에 잘못된 인수가 제공됨 오류가 발생합니다. 이 오류는 일반적으로 다음과 같은 이유로 발생합니다.

  • 첫 번째 매개변수는 문자열이어야 합니다. 이 오류는 다른 유형의 값이 전달되면 발생합니다.
  • 두 번째 매개변수도 문자열이어야 합니다. 이 오류는 배열이나 개체와 같이 문자열이 아닌 항목이 전달되는 경우에도 발생합니다.
  • 첫 번째 매개변수가 빈 문자열인 경우 두 번째 매개변수가 어떻게 전달되는지에 관계없이 이 오류가 보고됩니다. 빈 문자열에는 하위 문자열이 없기 때문에 당연히 하위 문자열을 찾는 것이 불가능합니다.
  1. 해결책

다음으로 strpos() 오류에 잘못된 인수가 제공되었는지 해결하는 방법에 대해 논의하겠습니다.

3.1 전달된 매개변수 유형 확인

먼저 strpos() 함수에 전달한 매개변수 유형이 올바른지 확인해야 합니다. 이를 위해 PHP 내장 함수 gettype()을 사용하여 매개변수의 유형을 가져오고 그것이 문자열인지 확인할 수 있습니다. 예를 들어, 다음 코드는 $haystack 변수가 문자열인지 확인합니다.

if (gettype($haystack) !== 'string') {
    // 如果 $haystack 不是字符串,那么输出错误
    echo "第一个参数必须是一个字符串";
}
로그인 후 복사

마찬가지로 두 번째 매개변수가 문자열인지 확인할 수도 있습니다.

if (gettype($needle) !== 'string') {
    // 如果 $needle 不是字符串,那么输出错误
    echo "第二个参数必须是一个字符串";
}
로그인 후 복사

3.2 첫 번째 매개변수가 빈 문자열인지 확인하세요

두 번째로 strpos() 함수에 전달하는 첫 번째 매개변수가 빈 문자열이 아닌지 확인해야 합니다. 이를 위해 PHP 내장 함수인empty()를 사용하여 문자열이 비어 있는지 확인할 수 있습니다. 예를 들어, 다음 코드는 $haystack 변수가 비어 있는지 확인합니다:

if (empty($haystack)) {
    // 如果 $haystack 是空字符串,那么输出错误
    echo "第一个参数不可为空";
}
로그인 후 복사

함수에 전달한 첫 번째 매개변수가 실제로 빈 문자열인 경우 두 번째 매개변수를 확인할 필요가 없습니다. 빈 문자열에서 하위 문자열을 찾을 수 있는 방법은 없습니다.

3.3 strpos()의 반환 값 사용

마지막으로 strpos() 함수의 반환 값을 확인하여 함수 호출의 성공 여부를 확인할 수도 있습니다. strpos() 함수는 지정된 하위 문자열을 찾으면 기본 문자열(0부터 계산)에 있는 하위 문자열의 인덱스를 반환하고, 그렇지 않으면 함수는 false를 반환합니다. 따라서 PHP의 엄격한 비교 연산자(===)를 사용하여 strpos() 함수의 반환 값이 부울 false인지 확인할 수 있습니다. 예를 들어 다음 코드는 strpos() 함수가 성공적으로 실행되었는지 확인합니다.

$pos = strpos($haystack, $needle);

if ($pos === false) {
    // 如果 strpos() 函数返回 false,那么输出错误
    echo "无法在主字符串中找到子字符串";
}
로그인 후 복사

실제 개발에서는 특정 상황에 따라 이러한 솔루션 중 하나 또는 여러 개를 선택할 수 있습니다.

요약

이 기사에서는 PHP 경고: strpos() 오류 메시지에 잘못된 인수가 제공됨에 대해 논의하고 다양한 해결 방법을 제공했습니다. strpos() 함수를 사용하는 동안 이 오류가 발생하면 이 문서에 설명된 방법을 따라 문제를 해결할 수 있습니다. PHP 오류가 발생할 때마다 코드를 주의 깊게 확인하고 몇 가지 기본 프로그래밍 규칙을 따라 코드의 정확성과 견고성을 보장해야 합니다.

위 내용은 PHP 경고에 대한 해결 방법: strpos()에 잘못된 인수가 제공되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!