> 백엔드 개발 > PHP 튜토리얼 > PHP는 다양한 함수를 통해 0과 비어 있음을 판별합니다.

PHP는 다양한 함수를 통해 0과 비어 있음을 판별합니다.

不言
풀어 주다: 2023-03-29 06:18:02
원래의
3209명이 탐색했습니다.

이 글에서는 주로 PHP가 다양한 함수를 통해 0과 비어 있음을 결정하는 방법을 소개합니다. 이제 특정 참조 값을 가지고 있으므로 도움이 필요한 친구들이 참고할 수 있습니다.

   $cast_id = 0;
    var_dump(strlen($cast_id));  //1
    var_dump(empty($cast_id)); // true
    var_dump(isset($cast_id)); //true
    var_dump(is_null($cast_id));//false
로그인 후 복사

null 판정

    $cast_id = "";
    var_dump(strlen($cast_id));  //0
    var_dump(empty($cast_id)); // true
    var_dump(isset($cast_id)); //true
    var_dump(is_null($cast_id));//false
로그인 후 복사

추가: PHP 구문에서 0이 null이 아닌 문제에 대한 해결책을 소개하겠습니다

오늘 다음과 같은 문제가 발생했습니다. PHP 문에서 값이 0보다 크거나 같은지 확인하고 싶습니다. ($value !=null && $value >=0)을 사용했는데 반환된 결과는 비어 있습니다. , 정말 이상해요.

실험 요약:

$value !=null && $value >=0), 返回的结果为空,这点真的好奇怪。

实验总结:

php 语句如下:

$index=0;
echo "A: ".$index."<br>"; //0
echo "B: ".($index !=null && $index >=0)."<br>";//
echo "C: ".(isset($index) && $index >=0)."<br>";//1
echo "D: ".(0 !=null)."<br>";//
로그인 후 복사

结果:

A: 0
B: 
C: 1
 D:
로그인 후 복사

要判断一个数值[该数组可能为空等]大于等于0, 可用另外一个方法: is_numeric($index) === true

$index=array_search($url, $contentOtherStr, true);
 //值大于等于0, 即存在
if(is_numeric($index) === true)
 {
echo "$url existed. "."<br>";
 }else{
echo "$url Add. "."<br>";
array_push($contentOtherStr, $url);
 }
로그인 후 복사

这个很奇怪,终于解决了。Mark 一下。

 总结:php的语句稍有些怪异,从其它编程语言转来的同学们一定多加小心谨慎,注意惯性思维及语法差异点啊,避免陷入坑中。

其它资料:

原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。

这一点可以用echo gettype('');echo gettype(NULL);php 문은 다음과 같습니다.

rrreee



결과:
rrreee
값[배열이 비어 있을 수 있음 등]이 0보다 크거나 같은지 확인하려면 다른 방법을 사용하세요. 사용할 수 있습니다: is_numeric($ index) === true

rrreee

이것은 매우 이상하며 마침내 해결되었습니다. 표시.

요약: PHP의 구문이 조금 이상합니다. 다른 프로그래밍 언어에서 전학한 학생들은 함정에 빠지지 않도록 관성적 사고와 문법적 차이에 더 주의하고 주의해야 합니다.

기타 정보:



이유는 PHP의 변수가 C 언어 구조에 저장되기 때문입니다. 빈 문자열, NULL 및 false는 모두 0 값으로 저장됩니다. 이 구조에는 zend_uchar 유형이 있습니다. 변수의 유형을 저장하는 데 사용되며, 빈 문자열의 유형은 문자열, NULL의 유형은 NULL, false는 부울입니다.

echo gettype('');echo gettype(NULL);을 사용하여 인쇄할 수 있습니다! === 연산자는 값을 비교할 뿐만 아니라 유형도 비교하므로 세 번째는 false입니다!

또한 PHP에서는

= 하나의 등호가 대입됩니다== 두 개의 등호는 같음을 결정하는 데 사용되며 유형이 아닌 값만 비교합니다
=== 세 개의 등호는 두 값이 모두 일치하는지 확인하는 데 사용됩니다. 및 유형은 같음

!= 같지 않음 기호, 유형에 관계없이 값만 비교

!== 같지 않음 기호, 값과 유형 비교

So

빈 문자열(''), false, NULL 및 0은 동일한 값입니다. ​​종류가 다르지만

! 참고:

🎜NULL은 특수 유형입니다. 🎜🎜두 가지 경우에 NULL입니다.🎜🎜 1. $var = NULL;🎜 2. $var;🎜3."", 0, "0", NULL , FALSE , array(), var $var; 및 속성이 없는 객체는 비어 있는 것으로 간주됩니다. var가 비어 있으면 TRUE가 반환됩니다. 🎜🎜🎜관련 권장사항: 🎜🎜🎜템플릿에 대한 할당() 배열 할당 및 템플릿에 대한 extract() 변수 할당을 구현하는 PHP 사용자 정의 함수🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜

위 내용은 PHP는 다양한 함수를 통해 0과 비어 있음을 판별합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿