programing

대문자 부울란과PHP 소문자

goodsources 2022. 10. 1. 15:45
반응형

대문자 부울란과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소문자로 표시합니다.

소문자를 사용합니다.

  1. 타이핑하기가 더 쉬워요. (IMO)
  2. 읽기가 더 쉬워요. (IMO)
  3. 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

반응형