이 기사에서는 기본 개념, 카멜 스타일 명명법, 카멜 케이스 방법 및 파스칼 방법을 포함하여 PHP 프로그래밍의 명명 규칙을 소개합니다.
카멜케이스 네이밍(카멜케이스 네이밍이라고도 함)은 CamelCase라는 이름에서 알 수 있듯이 대문자와 소문자를 혼합하여 변수와 함수의 이름을 만드는 것을 말합니다. 프로그래머가 동료 간에 자신의 코드를 더 쉽게 전달할 수 있도록 하기 위해 더 읽기 쉬운 통합 명명 방법을 채택하는 경우가 많습니다. 예를 들어 일부 프로그래머는 모두 소문자를 사용하는 것을 좋아하고 일부 프로그래머는 밑줄을 사용하는 것을 좋아하므로 내 이름의 변수를 작성하려는 경우 일반적인 작성 방법은 myname, my_name, MyName 또는 myName입니다. 이러한 명명 규칙은 모든 프로그래머가 읽기에 적합하지 않지만 카멜 표기법 명명을 사용하면 프로그램의 가독성을 높일 수 있습니다. 예를 들어, 다음은 낙타 표기법과 밑줄 표기법을 사용하여 명명된 동일한 함수입니다. printEmployeePaychecks(); print_employee_paychecks();첫 번째 함수 이름은 카멜 표기법을 사용합니다. 함수 이름의 각 논리적 중단점은 대문자로 표시됩니다. 두 번째 함수 이름은 밑줄 방법을 사용합니다. 함수 이름의 각 논리적 중단점은 밑줄로 표시됩니다. 밑줄 방법은 c가 등장한 이후 널리 사용되었습니다. 이는 UNIX와 같은 많은 오래된 프로그램 및 환경에서 매우 일반적으로 사용됩니다. Camel-Case는 컴퓨터 프로그램 작성을 위한 명명 규칙(규칙)의 집합입니다. 낙타식 명명법은 변수 이름이나 함수 이름이 서로 연결된 하나 이상의 단일 단어로 구성된 고유 식별자인 경우입니다. 첫 번째 단어는 소문자로 시작하고 두 번째 단어의 첫 글자는 대문자로 표시됩니다. 단어의 첫 글자는 모두 대문자입니다(예: myFirstName, myLastName). 이러한 변수 이름은 낙타 혹이 차례로 솟아오르는 것처럼 보입니다. Camel-Case라는 용어는 Perl 언어에서 일반적으로 사용되는 대소문자 혼합 형식과 Larry Wall 외가 집필한 베스트셀러 "Programming Perl"(O'Reilly 출판)의 표지 그림에서 유래되었습니다. 낙타입니다. 낙타 명명법의 명명 규칙은 인지도와 가독성을 높이기 위해 절대적이거나 의무적인 것이 아닌 관례로 간주할 수 있습니다. Hump 방식(작은 Hump 방식) 변수는 일반적으로 CamelCase를 사용하여 식별됩니다. CamelCase는 첫 단어를 제외한 모든 단어의 첫 글자를 대문자로 표기하는 것을 의미합니다. 예를 들어: int myStudentCount;myStudentCount 변수의 첫 번째 단어는 모두 소문자이며, 다음 단어의 첫 글자는 대문자로 표시됩니다. 파스칼 방식(대형 낙타 방식) 소문자 카멜 케이스 방식과 비교하여, 대형 카멜 케이스 방식 역시 첫 단어의 첫 글자를 대문자로 표기합니다. 클래스 이름, 함수 이름, 속성 및 네임스페이스에 일반적으로 사용됩니다. 예를 들어: 공개클래스 DataBaseUser;첨부, PHP 명명 규칙 적절한 이름 지정은 프로그램 계획의 핵심입니다. 이름은 그것이 위치한 생태 환경에 있는 어떤 것에 대한 장기적이고 광범위한 결과입니다. 일반적으로 시스템을 이해하는 프로그래머만이 시스템에 가장 적합한 이름을 생각해 낼 수 있습니다. 모든 이름이 자연스럽게 적절하다면 관계가 명확하고 의미도 추론할 수 있으며 일반인의 추론도 기대할 수 있습니다. 이름 중 일부만 해당 개체와 일치하는 경우 디자인을 다시 잘 살펴보는 것이 가장 좋습니다. 클래스 이름 지정 클래스 이름을 지정하기 전에 먼저 클래스가 무엇인지 알아야 합니다. 클래스 이름에서 제공하는 단서를 기반으로 클래스가 무엇인지 아직도 기억할 수 없다면 디자인이 충분하지 않은 것입니다. 세 단어 이상으로 구성된 혼합 이름은 시스템의 다양한 엔터티 간에 쉽게 혼동을 일으킬 수 있습니다. 디자인을 살펴보고 (CRC 세션 카드)를 사용하여 이름에 해당하는 엔터티가 있는지 확인해보세요. 많은 기능. 파생 클래스의 이름을 지정할 때 상위 클래스의 이름을 포함하려는 유혹을 피해야 합니다. 클래스 이름은 그 자체에만 관련되며 상위 클래스의 이름과는 아무 관련이 없습니다. 접미사 이름이 유용한 경우도 있습니다. 예를 들어 시스템이 에이전트를 사용하는 경우 실제로 정보를 전송하려면 구성 요소 이름을 "DownloadAgent"로 지정하세요. 메소드 및 함수 이름 지정 일반적으로 각 메서드와 함수는 작업을 수행하므로 이름 지정은 수행하는 작업을 명확하게 나타내야 합니다. 즉, ErrorCheck() 대신 CheckForErrors()를 사용하고 DataFile() 대신 DumpDataToFile()을 사용합니다. 이렇게 하면 함수와 데이터를 더욱 구별하기 쉬운 개체로 만들 수도 있습니다. 접미사가 유용한 경우도 있습니다. Max - 엔터티에 할당할 수 있는 최대값을 의미합니다. Cnt - 실행 카운트 변수의 현재 값입니다. 키 - 키 값입니다. 예: RetryMax는 최대 재시도 횟수를 나타내고 RetryCnt는 현재 재시도 횟수를 나타냅니다. 접두사가 유용한 경우도 있습니다. Is - 어떤 것에 대해 질문한다는 뜻입니다. 사람들이 볼 때마다 그것이 문제라는 것을 알고 있습니까? Get - 값을 얻는다는 의미입니다. 설정 - 값을 설정한다는 의미 예: IsHitRetryLimit. 약어에는 모두 대문자를 사용하지 마세요. 어쨌든 다음과 같은 상황이 발생하면 모두 대문자를 사용하는 대신 첫 번째 문자를 대문자로 나머지 문자를 소문자로 표현할 수 있습니다. 약어. 사용: GetHtmlStatistic. 사용되지 않음: GetHTMLStatistic. 이유 이름에 약어가 포함되어 있으면 사람들의 직관이 매우 다른 것 같습니다. 명명의 의미를 완전히 예측할 수 있도록 통일된 규정을 갖는 것이 가장 좋습니다. NetworkABCKey의 예를 들어 보겠습니다. C가 ABC의 C여야 하는지 아니면 키의 C여야 하는지 확인하세요. 어떤 사람들은 신경 쓰지 않고 다른 사람들은 싫어합니다. 따라서 서로 다른 코드에서 서로 다른 규칙을 볼 수 있으므로 이를 무엇이라고 부를지 알 수 없습니다. 예를 들어 class FluidOz // FluidOZ를 쓰지 마세요. class GetHtmlStatistic // GetHTMLStatistic을 쓰지 않음클래스 이름 지정 대문자를 단어 구분 기호로 사용하고 다른 모든 문자는 소문자로 사용하세요. 이름의 첫 글자를 대문자로 밑줄('_')을 사용하지 마세요. 이유 많은 명명 방법에 따르면 대부분의 사람들은 이것이 최선의 방법이라고 생각합니다. 예를 들어 클래스 이름OneTwo수업 이름 클래스 라이브러리 이름 지정 네임스페이스는 현재 다양한 공급업체 및 그룹의 클래스 라이브러리 간의 클래스 이름 충돌을 피하기 위해 점점 더 광범위하게 사용되고 있습니다. 네임스페이스가 아직 채택되지 않은 경우 클래스 이름 충돌을 피하기 위해 일반적인 접근 방식은 클래스 이름 앞에 고유한 접두사를 추가하는 것입니다. 물론 더 많이 사용하는 것이 좋습니다. 예를 들어 John Johnson의 데이터 구조 클래스 라이브러리에는 다음과 같이 Jj 접두사가 붙을 수 있습니다. classJjLinkList { }메서드 명명 클래스 이름 지정에 일관된 규칙을 채택하세요. 이유 다양한 규칙을 사용하는 대부분의 사람들은 이것이 최선의 절충안이라고 생각합니다. 예를 들어 클래스 이름OneTwo { 함수 DoIt() {}; 함수 HandleError() {}; }클래스 속성 명명 속성 이름 앞에는 'm' 문자가 와야 합니다. 접두사 'm'은 클래스 이름 지정에 대한 일관된 규칙을 따릅니다. 'm'은 'r'이 참조를 나타내는 것처럼 항상 이름의 시작 부분을 수정합니다. 이유 접두사 'm'은 클래스 속성과 메서드 이름의 충돌을 방지합니다. 메서드 이름과 속성 이름은 특히 요소에 액세스할 때 매우 유사한 경우가 많습니다. 예를 들어 클래스 이름OneTwo { 함수 VarAbc() {}; 함수 ErrorNumber() {}; var mVarAbc; var mErrorNumber; var 씨이름; }메서드의 매개변수 이름 지정 첫 번째 문자에는 소문자를 사용합니다. 첫 번째 문자 이후의 모든 단어는 클래스 명명 규칙에 따라 대문자로 표시됩니다. 이유 어떤 변수가 어떤 변수에 해당하는지 항상 알 수 있습니다. 이름 충돌을 일으키지 않고 클래스 이름과 유사한 이름을 사용할 수 있습니다. 예를 들어 클래스 이름OneTwo { 함수 StartYourEngines( &$rSomeEngine, &$r다른 엔진); }변수 이름 지정 모든 문자에 소문자를 사용하세요. 각 단어의 구분 기호로 '_'를 사용하세요. 이유 이런 방식으로 코드의 변수 범위가 명확해집니다. 모든 변수는 코드에서 다르게 표시되며 쉽게 식별할 수 있습니다. 예를 들어 함수 HandleError($errorNumber) { $error = OsErr(); $time_of_error = OsErr->getTimeOfError; $error_processor = OsErr->getErrorProcessor; }참조 변수 및 참조를 반환하는 함수 참조 앞에는 'r'이 붙어야 합니다. 이유 다양한 유형의 변수를 더 쉽게 식별할 수 있도록 합니다. 이는 변경 가능한 객체를 반환하는 메서드와 변경 불가능한 객체를 반환하는 메서드를 결정합니다. 예를 들어 수업 테스트 { var mrStatus; 함수 DoSomething(&$rStatus) {}; 함수 &rStatus() {}; }전역 변수 전역변수 앞에는 'g'가 붙어야 합니다. 이유 변수의 범위를 아는 것은 매우 중요합니다. 예를 들어 글로벌 $gLog; 글로벌 &$grLog;명명된/전역 상수 정의 전역 상수는 각 단어를 '_'로 구분합니다. 이유 이것이 전역 상수의 이름을 지정하는 전통입니다. 다른 정의와 충돌하지 않도록 주의해야 합니다. 예를 들어 정의("A_GLOBAL_CONSTANT", "안녕하세요!";정적 변수 정적 변수 앞에는 's'가 붙어야 합니다. 이유 변수의 범위를 아는 것은 매우 중요합니다. 예를 들어 함수 테스트(){ 정적 $msStatus = 0; }함수 명명 함수 이름은 C GNU 규칙을 따르며 모두 소문자를 사용하고 '_'를 사용하여 단어를 구분합니다. 이유 이렇게 하면 관련 클래스 이름을 쉽게 구별할 수 있습니다. 예를 들어 함수 some_bloody_function() { }오류 반환 감지 규칙 오류를 무시하지 않으려면 모든 시스템 호출에서 오류 메시지를 확인하세요. 포함할 각 시스템 오류 메시지에 대한 시스템 오류 텍스트를 정의합니다. 중괄호 {} 규칙 세 가지 주요 버팀대 배치 규칙 중 두 가지가 허용되며 그 중 첫 번째가 가장 좋습니다. 키워드 아래 동일한 열에 중괄호를 배치합니다. if ($조건) while ($조건) { { ... ... } }기존 UNIX 대괄호 규칙은 첫 번째 대괄호가 키워드와 동일한 열에 있고 마지막 대괄호가 키워드와 같은 열에 있다는 것입니다. if($조건) { while($조건) { ... ... } }이유 치열한 논쟁을 불러일으키는 비원칙적인 문제는 어느 쪽이든 타협을 통해 해결될 수 있지만 대부분의 경우에는 허용됩니다. 대부분의 사람들은 첫 번째 것을 선호합니다. 그 이유는 심리학 연구 및 연구 분야에 있습니다. 첫 번째 것을 선호하는 데에는 더 많은 이유가 있습니다. 사용 중인 문자 편집기가 대괄호 일치 기능(예: vi)을 지원하는 경우 다음을 수행하는 것이 가장 좋습니다. 중요한 것은 좋은 스타일을 갖는 것입니다. 왜? 우리는 큰 프로그램이 있고 이 큰 프로그램이 어디서 끝나는지 알고 싶을 때 말합니다. 단어. 먼저 여는 괄호로 이동하고 버튼을 누른 후 편집기는 해당하는 닫는 괄호를 찾습니다. 예: if ($very_long_condition && $second_very_long_condition) { ... } 그렇지 않으면 (...) { ... }한 프로그램 블록에서 다른 프로그램 블록으로 이동하려면 커서와 대괄호 일치 키를 사용하면 일치하는 대괄호를 찾기 위해 줄 끝으로 앞뒤로 이동할 필요가 없습니다. |