PHP: bool vs boolean type 힌트
PHP에서 type heading을 더 많이 사용하려고 합니다.오늘 나는 기본 파라미터로 부울을 취하는 함수를 쓰고 있었는데, 나는 그 형식의 함수가
function foo(boolean $bar = false) {
var_dump($bar);
}
는 실제로 치명적인 오류를 발생시킵니다.
클래스 유형 힌트가 있는 매개 변수의 기본값은 NULL일 수 있습니다.
유사한 형태의 함수는
function foo(bool $bar = false) {
var_dump($bar);
}
하지 않다.단, 둘 다
var_dump((bool) $bar);
var_dump((boolean) $bar);
똑같은 결과를 내다
: false를 검출되었습니다.
왜 이러한가?이것은 Java의 래퍼 클래스와 유사합니까?
http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
경고
위의 스칼라 유형의 에일리어스는 지원되지 않습니다.대신 클래스 또는 인터페이스 이름으로 취급됩니다.예를 들어 부울을 파라미터 또는 반환타입으로 사용하려면 bool 타입이 아닌 클래스 또는 인터페이스 부울 인스턴스인 인수 또는 반환값이 필요합니다.<?php function test(boolean $param) {} test(true); ?>
위의 예는 다음과 같습니다.
치명적인 오류:Uncaught TypeError: test()에 전달된 인수 1은 지정된 부울의 인스턴스여야 합니다.
한마디로 말해서boolean
의 에일리어스입니다.bool
, 및 에일리어스는 유형 힌트에서 작동하지 않습니다.
"실제" 이름 사용: bool
와 는 유사성이 없습니다.
타입 힌트는 어떤 타입을 수용해야 하는지를 함수에 지시하는 것과 같습니다.
유형 캐스팅은 유형 간에 "전환"하는 것입니다.
허용되는 배역은 다음과 같습니다.
(int), (integer) - cast to integer (bool), (boolean) - cast to boolean (float), (double), (real) - cast to float (string) - cast to string (array) - cast to array (object) - cast to object (unset) - cast to NULL (PHP 5)
php 타입 캐스팅에서는 (부울)과 (부울) 모두 동일합니다.
언급URL : https://stackoverflow.com/questions/44009037/php-bool-vs-boolean-type-hinting
'source' 카테고리의 다른 글
System.out.println 출력 컬러링 방법 (0) | 2022.10.13 |
---|---|
JavaScript에서 두 변수를 스왑하는 방법 (0) | 2022.10.13 |
React js onClick은 메서드에 값을 전달할 수 없습니다. (0) | 2022.10.13 |
X분마다 cronjob을 실행하는 방법 (0) | 2022.10.13 |
연결 없이 자바스크립트에서 변수를 문자열로 보간하려면 어떻게 해야 합니까? (0) | 2022.10.13 |