Programing

PHP 배열 예제가 뒤에 쉼표를 남기는 이유는 무엇입니까?

lottogame 2020. 11. 4. 07:38
반응형

PHP 배열 예제가 뒤에 쉼표를 남기는 이유는 무엇입니까?


다음과 같은 예를 보았습니다.

$data = array(
   'username' => $user->getUsername(),
   'userpass' => $user->getPassword(),
   'email' => $user->getEmail(),
);

그러나 실제로 나는 항상 후행 쉼표를 남기지 않았습니다 . 내가 뭔가 잘못하고있는 건가요, 아니면 그냥 '또 다른'방식인가요? 프레임 워크를 사용하는 경우 후행 쉼표가 코드 생성에 부정적인 영향을 미치지 않습니까? 다른 언어 (Java, C ++)에서도 배열 선언에서 후행 쉼표를 사용하는 것을 보았습니다. 따라서 후행 쉼표를 남기는 이유는 PHP에만 국한된 것이 아니라고 생각합니다.


PHP 배열 예제가 뒤에 쉼표를 남기는 이유는 무엇입니까?

그들이 할 수 있기 때문입니다. :) 배열 상태에 대한 PHP 매뉴얼 항목 :

마지막으로 정의 된 배열 항목 뒤에 쉼표가있는 것은 드문 경우이지만 유효한 구문입니다.

진지하게, 이것은 전적으로 편의를위한 것이므로 마지막 항목에 후행 쉼표를 먼저 추가하지 않고도 배열에 다른 요소를 쉽게 추가 할 수 있습니다.

다른 언어에 대해 말하기 : JavaScript에서주의하십시오. Firefox는 후행 쉼표를 관대하게 허용합니다. Internet Explorer는 당연히 오류를 발생시킵니다.


이것은 여러 줄에 배열을 정의 할 때 좋은 방법입니다. 또한 ZendFramework의 코딩 표준에 의해 권장됩니다 .

후자의 선언을 사용할 때 배열의 마지막 항목에 후행 쉼표를 사용하는 것이 좋습니다. 이렇게하면 연속 행에 새 항목을 추가 할 때의 영향이 최소화되고 쉼표 누락으로 인한 구문 분석 오류가 발생하지 않습니다.


버전 제어 (git)로 작업 할 때 배열에 하나를 추가하고 후행 쉼표가 없으면 이전 행에 쉼표를 추가해야했기 때문에 두 행을 수정 한 것처럼 보입니다. 나는 이것이 나쁘게 보이고 파일 변경 사항을 볼 때 오해의 소지가 있다는 것을 알았습니다. 이런 이유로 나는 후행 쉼표가 좋은 것이라고 생각합니다.


항목을 균일하게 유지하기 때문입니다.

주문을 바꾸거나 항목을 추가 또는 삭제해야했다면 후행 쉼표를 남길 수있는 것이 매우 편리하다는 것을 알고 있습니다.

마지막 요소에 쉼표가있을 수없는 경우 항목을 수정하여 마지막 쉼표를 유지해야합니다. 항목을 바꾸거나 수정하려는 의도가 이미 달성 되었기 때문에 무의미한 운동이며 시간과 손가락 스트로크 낭비입니다.

마지막 요소에 후행 쉼표를 허용함으로써 프로그래머가이 성 가시고 결실없는 세부 사항을 처리하지 않아도됩니다.


다른 사람을 대신 할 수는 없지만 보통 코드에 쉼표를 남깁니다. 나중에 배열에 추가하면 이전에 마지막 줄에 쉼표를 추가하는 것을 잊었 기 때문에 쉼표를 놓치는 것에 대해 걱정할 필요가 없기 때문에 그렇게합니다.


나는 그것이 허용 되더라도 그것은 나쁜 습관이라고 느낀다. 그것은 함수와 루프의 마지막 세미콜론을 생략하는 것과 같다.


그 이유는 커밋 변경입니다.

새 요소를 추가 할 때 후행 쉼표를 추가해야하는 경우. 한 줄을 변경하고 한 줄을 추가합니다. (-++)

쉼표가 이미 위 줄에있을 때 새 요소를 추가 할 때. 추가 된 줄은 1 개 뿐이며 변경된 줄은 없습니다. (+)


새로운 배열 요소를 추가하는 동안 구문 오류를 방지하는 데 도움이되기 때문에 항상 후행 쉼표를 사용합니다. 이는 좋은 습관 일뿐입니다.


최근에는 놀랐지 만 말이됩니다. 나는 똑같은 일을 수행하는 이전의 규칙을 고수하려고 오랫동안 노력해 왔습니다. 즉, 각 항목의 끝이 아니라 앞에 구분하는 쉼표를 넣는 것입니다.

$data = array(
   'username' => $user->getUsername()
 , 'userpass' => $user->getPassword()
 , 'email' => $user->getEmail()
);

쉼표도 모두 그런 식으로 정렬되어 멋지게 보이지만 들여 쓰기가 약간 어색 할 수 있습니다. 아마도 그 이유 때문에 수년 동안 많이 잡히지 않은 것 같고 다른 사람들이 왜 그렇게하는지 묻습니다. 나는 PHP의 솔루션이 좋은 타협이라고 생각하며 어쨌든 지금은 분명히 받아 들여지는 솔루션입니다.


나는 항상 새 항목의 시작 부분에 쉼표를 추가했습니다. 컴파일러는 이것을 "또 다른 것이 올 것"이라고 말하는 미리보기의 단일 문자 토큰으로 간주합니다. 현대 컴파일러가 LR (1) (왼쪽 재귀, 단일 토큰 미리보기)을 사용하는지 모르겠지만 쉼표 뒤에 아무것도 없을 때 구문 오류가 발생한다고 생각합니다. 다른 개발자가 저에게 동의하는 경우는 드물지만 JohnBrooking이 동의하는 것 같습니다!

참고 URL : https://stackoverflow.com/questions/2829581/why-do-php-array-examples-leave-a-trailing-comma

반응형