분류
php
PHP에서 void typehint의 값
본문
void typehint가 PHP 7.1에서 소개되었을 때 그것에 대해 약간의 논쟁이 있었습니다.
어떤 사람들은 아무것도 입력하지 않는 것이 궁금한가요? 나는 그들 중 하나였습니다.
한편 나는 그것에 대한 의견을 바꿨습니다. 이 짧은 글에서 void 라고 생각하는 작은 예를 드리고자 합니다.
https://freek.dev/1481-the-value-of-the-void-typehint-in-php
로컬 모델 범위에 대한 Laravel 설명서에 제공된 예입니다.
public function scopePopular($query)
{
return $query->where('votes', '>', 100);
}
그 반환문은 거짓말입니다. 결과로 아무것도 수행되지 않습니다.
$query의 지정된 빌더 인스턴스는 변경 가능합니다. PHP에서 객체는 참조로 전달됩니다.
즉, scopePopular의 $query 객체는 scopePopular를 호출하는 코드와 공유됩니다.
$query는 어디에서 호출하면 scopePopular에 대한 코드를 호출하는 코드로 변경합니다.
내 프로젝트에서 위와 같이 범위를 작성합니다.
public function scopePopular(Builder $query): void
{
$query->where('votes', '>', 100);
}
나에게 이것은 더 정직합니다. void typehint는 무언가를 반환 할 필요가 없으며 주어진 매개 변수는 변경 가능하다는 것을 나에게 알립니다 (그리고 팀원에게도 희망합니다).
- 이전글PHP 앱 보안을 위한 10 단계 19.10.22
- 다음글Threejs 용 리 액트 렌더러 (웹 및 리 액티브 네이티브) 19.10.22