PHP에서 대문자 부울 대 소문자
내가 PHP를 배울 때, 나는 당신이 항상 논리 값의 대문자 버전을 사용해야 선가, TRUE
그리고 FALSE
"정상적인"소문자 버전 때문에, true
그리고 false
사용에 "안전"하지 않았다.
몇 년이 지났고 필자가 작성한 모든 PHP 스크립트는 대문자 버전을 사용합니다. 그러나 이제는 소문자 버전으로 작성된 많은 PHP (예 : Zend Framework)를 보았으므로 의문의 여지가 있습니다.
대문자 버전을 사용해야하는 이유가 있습니까? 아니면 소문자를 사용하는 것이 완벽합니까?
편집 :이 적용된다는 것을 언급하는 것을 잊었다 NULL
및 null
뿐만 아니라.
공식 PHP 매뉴얼은 말합니다 :
부울 리터럴을 지정하려면 키워드 TRUE 또는 FALSE를 사용하십시오. 둘 다 대소 문자를 구분하지 않습니다.
그래 그래서, true === TRUE
하고 false === FALSE
.
그러나 개인적으로 나는 가독성 을 위해 TRUE
반복 true
해서 선호합니다 . 그것은 사용에 대한 내 취향에 대해 동일한 이유 를 통해 또는 , 및 사용에 이상 나 .FALSE
false
OR
or
||
AND
and
&&
PSR-2 표준은 필요 true
, false
및 null
소문자로.
define('TRUE', false);
define('FALSE', true);
행복한 디버깅! (PHP < 5.1.3 (2006 년 5 월 2 일) , 데모 참조 )
편집 : 대문자 bool은 상수이고 소문자는 값입니다. 상수가 아닌 값에 관심이 있으며 쉽게 변경할 수 있습니다.
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 )
소문자를 사용하십시오.
- 입력하기가 더 쉽습니다. (IMO)
- 읽기가 더 쉽습니다. (IMO)
- JavaScript 부울은 소문자와 대소 문자를 구분합니다.
나는 PSR 악 대차를 타기 전까지 모든 대문자로 C 스타일 TRUE / FALSE 부울을 모든 대문자로 사용했습니다 .
PSR-2 섹션 2.5 :
PHP 상수 true, false 및 null은 반드시 소문자 여야합니다.
따라서 기본적으로 오픈 소스 스타일 관련 사항을 잘 활용하려면 부울이 소문자 여야합니다.
JSON을 사용하려는 경우 RFC7159 는 다음과 같이 말합니다.
리터럴 이름은 소문자 여야합니다. 다른 리터럴 이름은 허용되지 않습니다.
PHP 5.6 의 이전 버전과 호환되지 않는 변경 사항 목록에서 :
json_decode ()는 JSON 사양에 따라 소문자가 아닌 JSON 리터럴의 true, false 및 null을 항상 거부합니다.
PSR-2 표준 에 따르면 :
PHP 키워드는 반드시 소문자 여야합니다.
PHP 상수 true, false 및 null은 반드시 소문자 여야합니다.
중요하지 않습니다 . true
와 정확히 동일합니다 TRUE
. 동일은 간다 false
하고 null
. 나는 그것이 언제라도 문제가 될 것이라고 들었습니다.
물건을 엉망으로 만들 수있는 유일한 방법은 다음과 같은 값을 인용하는 것입니다.
$foo = false; // FALSE
$bar = "false"; // TRUE
$foo2 = true; // TRUE
$bar2 = "true"; // TRUE
$foo3 = null; // NULL
$bar3 = "null"; // TRUE
대문자 또는 소문자 사용을 제한하거나 권장하는 것만이 회사 또는 자체 코딩 지침 일 수 있습니다. 그 외에는 어느 쪽이든 자유롭게 사용할 수 있으며 문제가 발생하지 않습니다.
I've written simple code to check the differences between false and FALSE: Each iteration was doing something that:
for ($i = 0; $i < self::ITERATIONS; ++$i) {
(0 == FALSE) ;
}
Here are the results:
Iterations: 100000000
using 'FALSE': 25.427761077881 sec
using 'false': 25.01614689827 sec
So we can see that performance is very slightly touched by the booleans case - lowercase is faster. But certainly you won't see.
Personally I've always used the lowercase form, but for no particular reason other than to make my code look tidy, the only place I use capital letters is when camel casing class names and variable names.
One advantage to using uppercase that comes to mind though is that they stick out and are easy to find in code.
I came across this old question while asking myself the same thing. Good point with define('TRUE', false);define('FALSE', true); Doesn't apply to php5 though. Writing those lines in a php5 code is like writing a comment.
Here is my TEST on 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;
This time FALSE won 20 times. So uppercase is faster in my environment.
참고URL : https://stackoverflow.com/questions/2013848/uppercase-booleans-vs-lowercase-in-php
'Programing' 카테고리의 다른 글
Windows에서 박쥐 파일을 사용하여 모든 내용이 들어있는 폴더를 삭제하는 방법은 무엇입니까? (0) | 2020.07.11 |
---|---|
Google App Engine에서 모든 데이터 스토어를 삭제하는 방법은 무엇입니까? (0) | 2020.07.11 |
자식은 모든 변경 사항을 버리고 업스트림에서 가져옵니다. (0) | 2020.07.11 |
문서가 준비 될 때까지 셀레늄 대기 (0) | 2020.07.11 |
데이터 구조 트리와 그래프의 차이점은 무엇입니까? (0) | 2020.07.10 |