PHP 7.1은 이제 nullable 반환 형식을 지원합니다 . 내가 연결 한 첫 번째 RFC는 다음과 같습니다.
function nullOrString(int $foo) : ?string
{
return $foo%2 ? "odd" : null;
}
오래된 답변 :
내 의견은 실제로 질문에 대한 답변이기 때문에 :
PHP 7은 아직 널 입력 가능 리턴 유형을 지원하지 않지만이 를 해결하기 위한 RFC 가 있으며, 이는 PHP 7.1에 착륙하는 것을 목표로합니다. 전달되면 구문은 모든 타입 힌트 (반환 타입과 타입 힌트)에 영향을 미칩니다.
public function returnStringOrNull(?array $optionalArray) : ?string
{
if ($optionalArray) {
return implode(', ', $optionalArray);//string returned here
}
return null;
}
또한 유니온 유형을 추가하기 위해 경쟁 RFC 가 있으며, 동일한 유형을 수행 할 수 있지만 다르게 보일 수 있습니다.
public function returnStringOrNull(array|null $optionalArray) : string|null
{
if ($optionalArray) {
return implode(', ', $optionalArray);//string returned here
}
return null;
}
그러나 지금은 다음과 같이 작성해야합니다.
public function returnStringOrNull( array $optionalArray = null)
{
if ($optionalArray) {
return implode(', ', $optionalArray);
}
}
또는 반환 유형과 일치하도록 빈 문자열을 반환하고 잘못된 값을 확인하십시오.
public function returnStringOrNull( array $optionalArray = null) : string
{
if ($optionalArray) {
return implode(', ', $optionalArray);
}
return '';
}
//call
$string = $x->returnStringOrNull();
if (!$string) {
$string = $x->returnStringOrNull(range(1, 10));
}
function returnString(?string $stringNull) : ?string { return $stringNull;}