source

php가 비어있을 때 null입니까?

gigabyte 2022. 11. 19. 11:40
반응형

php가 비어있을 때 null입니까?

에 대해 질문이 있습니다.NULLPHP:

  $a = '';
  if($a == NULL) {
      echo 'is null';
  }

이 경우 null로 표시되는 이유는 무엇입니까?$a빈 문자열입니까?그거 버그예요?

원하는 것은 다음과 같습니다.

if($variable === NULL) {...}

주의:===.
사용시==PHP에서는 NULL, false, 0, 문자열 빈 배열이 동일하게 취급됩니다.

다음 표와 같이empty($foo)와 동등하다$foo==null그리고.is_null($foo)와 같은 기능을 가지다$foo===null또한 이 표에는 다음과 같은 몇 가지 까다로운 값이 나와 있습니다.null비교.(variable은 초기화되지 않은 변수를 나타냅니다.)

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   

확인.=====

'' == NULL사실로 돌아오다
0 == NULL사실로 돌아오다
false == null사실로 돌아오다

반면에.

'' === NULL거짓으로 반환될 것이다
0 === NULL거짓으로 반환될 것이다
false === NULL거짓으로 반환될 것이다

아니, 그건 벌레가 아니야. 번째 열의 각 값과 다른 열의 값을 비교한 결과를 보여주는 ==와의 느슨한 비교 표(두 번째 표)를 살펴봅니다.

    TRUE    FALSE   1       0       -1      "1"     "0"     "-1"    NULL    array() "php"   ""

    [...]    

""  FALSE   TRUE    FALSE   TRUE    FALSE   FALSE   FALSE   FALSE   TRUE    FALSE   FALSE   TRUE

저기 빈 문자열이 보이시죠?""에 대한false,0,NULL또는""진실일 것이다.

대신 또는 엄밀한 비교(세 번째 표)를 사용할[아쉬움] 수 있습니다.

이것은 버그가 아니라 PHP의 정상적인 동작입니다.그 이유는==PHP의 연산자는 유형을 확인하지 않습니다.

'' == null == 0 == false

값이 동일한 유형인지 확인하려면===대신.이 차이를 자세히 알아보려면 공식 문서를 읽어보시기 바랍니다.

사용하시는 경우==, php는 빈 문자열 또는 어레이를 다음과 같이 처리합니다.null을 구별하다null그리고.empty, 둘 중 하나를 사용합니다.===또는is_null. 그래서:

if($a === NULL)또는if(is_null($a))

PHP 7 isset() vs empty() vs is_null()

여기에 이미지 설명 입력

다른 사람이 다른 사람을 상대하고 있다면 , 이것은, 다음의 경우에 유효합니다. .

다음으로 대체하다str_replace()먼저 확인하고empty()

empty(str_replace(" " ,"" , $YOUR_DATA)) ? $YOUR_DATA = '--' : $YOUR_DATA;

NULL은 값이 없는 변수를 나타냅니다.변수가 NULL인지 확인하려면 다음 중 하나를 사용합니다.is_null($var)또는 비교(===를 NULL로 지정합니다.다만, 변수가 정의되어 있지 않은 경우는, 양쪽 모두 경고를 생성합니다.와 유사하다isset($var)그리고.empty($var)기능으로서 사용할 수 있습니다.

var_dump(is_null($var)); // true
var_dump($var === null); // true
var_dump(empty($var)); // true

자세한 내용은 PHP에서 변수가 NULL인지 확인하는 방법을 참조하십시오.

사용하다empty(http://php.net/manual/en/function.empty.php).

예:

$a = '';
if(empty($a)) {
    echo 'is empty';
}

언급URL : https://stackoverflow.com/questions/8236354/php-is-null-when-empty

반응형