PHP의 원시 데이터 유형은 참조별로 전달됩니까?
-
11-09-2019 - |
문제
PHP에서는 종종 많은 문자열 조작을하고 있습니다. 문자열과 같은 원시 유형이 값으로 전달되면 성능에 크게 영향을 미치기 때문에 코드를 여러 기능으로 나누는 것이 좋습니다.
해결책
객체 만 참조로 전달됩니다.
그렇다고해서 참조로 변경하여 성능 향상을받을 수는 없습니다. PHP는 복사기 쓰기를 사용하므로 변수를 수정하는 경우에만 사본이 이루어집니다.
코드를 함수로 분할하면 해당 관점에서 속도가 느려지지 않습니다. 함수를 호출하기위한 작은 오버 헤드가 있지만, 루프에서 10,000을 호출하지 않는 한 아마도 걱정할 필요가 없을 것입니다.
다른 팁
객체는 참조로 전달됩니다. 명시 적으로 사용하지 않는 한 다른 모든 것은 가치로 전달됩니다. & 운영자와의 회의.
즉, PHP도 사용합니다 복사기 불필요한 복사를 피하기 위해.
참조별로 통과하는 것은 실제로 PHP에서 가치를 통과하는 것보다 느리게 진행됩니다. 이 주장에 대한 올바른 인용을 찾을 수 없습니다. PHP 매뉴얼의 "참조"섹션 어딘가에 있습니다.
기본적으로 모든 것은 가치로 전달됩니다. 참조로 무언가를 전달하려면 명시 적으로 그것을 명시 적으로 언급해야합니다.
여기에 있습니다 이 행동을 명시 적으로 설명하는 PHP 문서.
제휴하지 않습니다 StackOverflow