Program Tip

PHP 함수는 기본적으로 무엇을 반환합니까?

programtip 2020. 11. 4. 08:18
반응형

PHP 함수는 기본적으로 무엇을 반환합니까?


명시 적으로 아무것도 반환하지 않으면 PHP 함수가 정확히 무엇을 반환합니까?

function foo() {}
  1. 어떤 유형입니까?

  2. 그것은 어떤 가치입니까?

  3. ===로 정확히 어떻게 테스트합니까?

  4. 이것이 php4에서 php5로 변경 되었습니까?

  5. function foo() {}사이에 차이가 있습니까?function foo() { return; }

(나는 그것을 테스트하는 방법을 묻지 않습니다. if (foo() !=0) ...)


  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. 아니.

다음을 수행하여 시도해 볼 수 있습니다.

$x = foo();
var_dump($x);

PHP 함수에서 값을 반환하지 않는 것은 null을 반환하는 함수와 동일한 의미를 갖습니다.

function foo() {}

$x=foo();

echo gettype($x)."\n";
echo isset($x)?"true\n":"false\n";
echo is_null($x)?"true\n":"false\n";

이것은 출력됩니다

NULL
false
true

foo가 다음으로 대체되면 동일한 결과를 얻습니다.

function foo() {return null;}

이 동작은 php4에서 php5, php7로 변경되지 않았습니다. (방금 확인 하기 위해 테스트 했습니다!)


함수 반환 유형을 지정할 때 이상한 점을 발견했습니다. 그렇게 할 때 함수에서 무언가를 반환하는 것에 대해 명시 적이어야합니다.

<?php

function errorNoReturnDeclared($a = 10) : ?string {
    if($a == 10) {
        echo 'Hello World!';
    }
}

errorNoReturnDeclared(); //Fatal error

오류:

 Uncaught TypeError: Return value of errorNoReturnDeclared() must be of the type string or null, none returned in 

따라서 이전 함수에 몇 가지 반환 유형 사양을 추가하기로 결정했다면 이에 대해 생각해야합니다.

참고 URL : https://stackoverflow.com/questions/1218580/what-does-a-php-function-return-by-default

반응형