대문자 부울란과PHP 소문자
PHP를 배울 때 어디서 읽었는데 항상 대문자 버전의 boulan을 사용해야 한다고 했어요.TRUE
그리고.FALSE
"일반" 소문자 버전이기 때문에true
그리고.false
사용하기에 안전하지 않았습니다.
이제 몇 년이 지났고 제가 쓴 모든 PHP 스크립트는 대문자를 사용합니다.하지만 저는 소문자 버전(Zend Framework)으로 작성된 많은 PHP를 보았기 때문에 의문을 제기합니다.
대문자를 사용해야 하는 이유가 있습니까?아니면 소문자를 사용해도 문제없습니까?
edit: 이 내용이 다음 항목에 적용되는 것을 깜빡 잊었습니다.NULL
그리고.null
뿐만 아니라.
define('TRUE', false);
define('FALSE', true);
Happy debugging! (PHP < 5.1.3 (2006년 5월 2일), 데모 참조)
편집: 대문자는 상수이고 소문자는 값입니다.쉽게 변할 수 있는 상수가 아닌 값에 관심이 있습니다.
Eliminated run-time constant fetching for TRUE, FALSE and NULL author dmitry <dmitry> Wed, 15 Mar 2006 09:04:48 +0000 (09:04 +0000) committer dmitry <dmitry> Wed, 15 Mar 2006 09:04:48 +0000 (09:04 +0000) commit d51599dfcd3282049c7a91809bb83f665af23b69 tree 05b23b2f97cf59422ff71cc6a093e174dbdecbd3 parent a623645b6fd66c14f401bb2c9e4a302d767800fd
d51599dfcd3282049c7a91809bb83f665af23b69(및 6f76b17079a709415195a7c27607cd52d039d7c3)를 커밋합니다.
공식 PHP 매뉴얼에는 다음과 같이 기재되어 있습니다.
부울 리터럴을 지정하려면 TRUE 또는 FALSE 키워드를 사용합니다.둘 다 대소문자를 구분하지 않습니다.
그래, 맞아.true === TRUE
그리고.false === FALSE
.
하지만 개인적으로는TRUE
에 걸쳐서true
그리고.FALSE
에 걸쳐서false
가독성을 위해.제가 선호하는 것과 같은 이유이기도 합니다.OR
에 걸쳐서or
또는||
, 및 사용 시AND
에 걸쳐서and
또는&&
.
PSR-2 규격에는true
,false
그리고.null
소문자로 표시합니다.
소문자를 사용합니다.
- 타이핑하기가 더 쉬워요. (IMO)
- 읽기가 더 쉬워요. (IMO)
- JavaScript 부란은 소문자로 대소문자를 구분합니다.
JSON을 사용하는 경우 RFC7159에서는 다음과 같이 기술되어 있습니다.
리터럴 이름은 소문자여야 합니다.다른 리터럴명은 사용할 수 없습니다.
PHP 5.6의 이전 버전과 호환되지 않는 변경 사항 목록에서 다음을 수행합니다.
json_decode()는 JSON 사양에 따라 항상 true, false 및 null의 소문자가 아닌 바리안트를 거부합니다.
PSR-2 규격에 준거:
PHP 키워드는 소문자로 입력해야 합니다.
PHP 상수는 true, false 및 null이어야 합니다.
PSR 밴드에 합류할 때까지, 나는 다른 모든 Const와 마찬가지로 TRUE/FALSE 부란을 하곤 했다.
PSR-2 섹션 2.5:
PHP 상수는 true, false 및 null이어야 합니다.
그러니까 기본적으로 오픈 소스 스타일의 세부 사항을 잘 다루고 싶다면 Bohans는 소문자를 낮춰야 합니다.
true
, is, is, is, is, is, is, 과 똑같다TRUE
에 대해서도 마찬가지입니다.false
★★★★★★★★★★★★★★★★★」null
어떤 시점에서도 문제가 될 수 있었다는 말은 듣지 못했습니다.
이러한 값을 인용하는 것만이 문제를 해결할 수 있습니다. 예를 들어 다음과 같습니다.
$foo = false; // FALSE
$bar = "false"; // TRUE
$foo2 = true; // TRUE
$bar2 = "true"; // TRUE
$foo3 = null; // NULL
$bar3 = "null"; // TRUE
대문자 또는 소문자를 사용하도록 제한하거나 권장하는 것은 회사 또는 자체 코딩 지침뿐일 수 있습니다.그 외에는 어느쪽이든 자유롭게 사용할 수 있으며, 문제가 발생하지 않습니다.
FALSE와 FALSE의 차이를 확인하기 위해 간단한 코드를 작성했습니다.각 반복은 다음과 같은 작업을 하고 있었습니다.
for ($i = 0; $i < self::ITERATIONS; ++$i) {
(0 == FALSE) ;
}
결과는 다음과 같습니다.
Iterations: 100000000
using 'FALSE': 25.427761077881 sec
using 'false': 25.01614689827 sec
따라서 성능에는 부울란 대소문자가 거의 영향을 주지 않습니다.소문자가 더 빠릅니다.하지만 넌 분명히 보지 못할 거야.
개인적으로 나는 항상 소문자를 사용했지만, 내 코드를 깔끔하게 보이게 하기 위해 특별히 대문자를 사용하는 것은 카멜 케이싱 클래스 이름과 변수 이름뿐입니다.
대문자 사용의 장점 중 하나는 눈에 띄고 코드에서 쉽게 찾을 수 있다는 것입니다.
저도 같은 질문을 하다가 이런 오래된 질문을 하게 되었습니다.정의(')의 장점TRUE', false);정의(')FALSE', True);단, php5에는 적용되지 않습니다.이러한 행을 php5 코드로 쓰는 것은 코멘트를 쓰는 것과 같습니다.
이것은 Windows 7x64bit Apache/2.4.9 PHP/5.5.14에서의 테스트입니다.
$blockLimit = 50;
while($blockLimit > 0): $blockLimit--;
//STAR Here ================================================
$msc = microtime(true);
for ($i = 0; $i < 100000; $i++) {
echo (FALSE);
}
echo 'FALSE took ' . number_format(microtime(true)-$msc,4) . " Seconds\r\n";
$msc = microtime(true);
for ($i = 0; $i < 100000; $i++) {
echo (false);
}
echo 'false took ' . number_format(microtime(true)-$msc,4) . " Seconds\r\n";
echo "\r\n --- \r\n";
//Shutdown ==================================================
endwhile;
이번에는 FALSE가 20번 이겼어요.따라서 내 환경에서는 대문자 처리 속도가 더 빠릅니다.
나는 파티에 몇 년이나 늦었지만 아직 실정에 없는 흥미로운 것을 말하고 싶었다. 나는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」True
유효합니다.true
★★★★★★★★★★★★★★★★★」TRUE
모든 철자가 동일합니다.PHP용 "PHP" Open API를 사용합니다.True
(그 결과 당황한 심정이 되어, 이 페이지를 찾아 헤맸습니다.
언급URL : https://stackoverflow.com/questions/2013848/uppercase-booleans-vs-lowercase-in-php
'programing' 카테고리의 다른 글
Java가 int를 바이트로 변환할 때 이상한 동작이 발생합니까? (0) | 2022.10.10 |
---|---|
jQuery를 사용하여 사용자가 div의 맨 아래로 스크롤할 때 감지 (0) | 2022.10.01 |
동적 html 로드 후 클릭 이벤트를 추가하기 위한 jQuery .live() vs .on() 메서드 (0) | 2022.10.01 |
MariaDB UNIX_TIMESTamp()가 미래의 날짜를 사용할 때 NULL을 반환합니다. (0) | 2022.10.01 |
PHP에서 foreach 루프를 사용하는 동안 배열의 마지막 요소 찾기 (1) | 2022.10.01 |