while (true)
대 while (\true)
의 차이점 가장 중요한 것은 boolean
이 PHP
의 네임 스페이스의 영향을받는 이유를 분명히 알 수 있습니까?`while (true)`와`while ( true)`의 차이점은 무엇입니까?
24
A
답변
55
PHP true
에서 false
및 null
은 네임 스페이스에서 덮어 쓰지 않도록 보호되는 상수입니다. 예를 들면되어 다음과 같은 유효하지 않은 코드로 : 그것은 수도 (
namespace Foo;
define('Foo\true', false);
var_dump(true); // bool(false)
을 그러나이 지원되지 않는 기능 :
그것은 여전히 가능namespace Foo;
const true = false; // Cannot redeclare constant 'true'
는 일정한 사용 '()를 정의' '를 덮어 버그라고 부름) PHP는 true
을 덮어 쓸 수 없다고 가정 할 수 있습니다.
// Note: This uses eval() to make sure the define() runs before the constexpr
// constant resolution happens
namespace Foo;
define('Foo\true', false);
var_dump(eval('namespace Foo;
static $t = true;
return $t;')); // bool(true)
대체가 constexpr의 경우가 아니라 "정상"경우에 발생하는 이유는 구현에 버그가
하십시오 constexpr의 맥락에서true
의 사용 예를 들어 위의 정의에 의해 영향을받지 않습니다 . constexprs의 경우 대체는 이름 확인 전에 수행되지만 일반 코드의 경우 이름 확인 후에 수행됩니다.
올바른 구현은 이름 확인 후 항상 대체하지만 대체 중에 true
, false
및 null
을 특히 고려해야합니다. "PHP 7에서이 문제를 해결할 계획입니다.
관련 문제
- 1. while (true)와 for (;;) 사이의 차이점은 무엇입니까?
- 2. While (true) while (true) 루프를 이해하십시오.
- 3. while (true)과 loop의 차이점은 무엇입니까?
- 4. while (true) while (중단없는) 루프
- 5. while while of while True 루프
- 6. while Python의 True 문제
- 7. "while True"중급 솔루션
- 8. while true loop에 대해서
- 9. while (true) loop lagg
- 10. FileStream.Flush()와 FileStream.Flush (True)의 차이점은 무엇입니까?
- 11. while (true)과 while (new Scanner (System.in) .hasNext)의 차이점
- 12. while (true) {// Processes} 동안 유효합니까?
- 13. while 루프 항상 true CCS
- 14. while true catch catch nested
- 15. while (true) 루프를 사용하지 않음
- 16. 이벤트 대 while (true) 루프
- 17. while (true) 오류가 한번만 발생하면
- 18. True 루프 while tkinter root.mainloop
- 19. prop ('disabled', 'disabled')와 prop ('disabled', true)의 차이점은 무엇입니까?
- 20. UserController.GetUser (PortalId, UserId, true/false)와 UserController.GetCurrentUserInfo()의 차이점은 무엇입니까?
- 21. GC.GetTotalMemory (false)와 GC.GetTotalMemory (true)의 차이점은 무엇입니까
- 22. if 문이 while (true) 루프에서 실행되지 않습니다.
- 23. while (true) 루프가있는 ThreadPool 및 메서드?
- 24. while (true), 이스케이프 조건 및 블로킹 방법
- 25. 나뭇 가지에 while (true) {}를 구현하는 방법
- 26. 자바의 루프에서 while (true)을 제거하려면 어떻게해야합니까?
- 27. while (true)를 사용하여 정기적으로 작업 실행
- 28. java while (true) 대기열을 폴링하여 실행하지 않음
- 29. while (true) 루프가없는 C# 비 블로킹 소켓
- 30. while (true) 루프에서 결과를 레이블에 표시하는 방법
https://github.com/igorw/retry/issues/3 - *"이 기능은 이미 조금 나아졌지만, 맨 위에는 다소 비효율적 인 FETCH_CONSTANT 명령이 있습니다. 이것은 FETCH_CONSTANT 호출을 없애고 부울을 true 인라인으로 만듭니다. "* –
'("true "를 while (\ true)로 바꿈으로써이를 최적화 할 수 있습니다. TRUE/FALSE'는 다른 상수와 같이 동작합니다. http://php.net/manual/en/reserved.constants.php –
모든 함수/클래스/변수/상수/etc는 버전 5.3.0부터 PHP에서 이름 공간으로 사용되고 true/false/null/etc는 여러분이 정의 할 수있는 상수처럼 상수입니다 ... 대부분은 전역 네임 스페이스에 있지만 PHP는 현재 네임 스페이스를 먼저 확인한 다음 글로벌 네임 스페이스를 확인합니다 현재 네임 스페이스에서 그 (것)들을 찾지 않는다. 그래서 그'\'접두어를 사용하면 현재 네임 스페이스 체크의 오버 헤드를 막을 수있다. –