왜 PHP의 함수와 메서드는 대소문자를 구분하지 않는가?
다음 예시와 같이 PHP의 함수 및 메서드는 대소문자를 구분하지 않습니다.
function ag()
{
echo '2';
}
Ag();
class test {
function clMe()
{
echo 'hi';
}
}
$instance = new test;
$instance->clme();
그러나 변수에는 해당되지 않습니다.이유가 뭐죠?
인터뷰 - PHP의 크리에이터 라스무스 Lerdorf의 말을 인용하겠습니다.
PHP의 첫 번째 버전은 제 웹사이트와 몇 가지 프로젝트를 위해 함께 만든 단순한 도구 세트입니다.어떤 툴은 mSQL 데이터베이스에 대한 고급 히트 로깅을 수행했고, 다른 툴은 폼 데이터 인터프리터 역할을 했습니다.저는 질리기 전에 30여 개의 CGI 프로그램을 C로 작성했고, 그것들을 모두 하나의 C 라이브러리로 통합했습니다.그런 다음 HTML 파일에서 태그를 선택하여 C 라이브러리의 해당 함수의 출력으로 대체하는 매우 간단한 파서를 작성했습니다.
단순한 파서는 서서히 성장하여 조건부 태그, 루프 태그, 함수 등을 포함하게 되었습니다.스크립트 언어를 쓰고 있다고는 전혀 생각하지 않았습니다.매크로 대체 파서에 약간의 기능을 추가한 것뿐입니다.난 여전히 내 진짜 비즈니스 논리를 C로 쓰고 있었다.
어디서 읽었는데요, 기본적으로 HTML 문서의 태그처럼 느껴지고 HTML 태그가 대소문자를 구분하지 않기 때문에 대소문자를 구분하지 않기 위해 PHP의 함수 이름을 선택했다고 합니다.이후 이 기능은 언어에서 계속 사용되었습니다.
예, 함수 및 메서드 이름은 대소문자를 구분하지 않습니다.
변수 이름은 대소문자를 구분합니다.
여기에는 이유가 있을 수 없습니다.오랫동안 이렇게 해왔기 때문에 이전 버전과의 호환성을 이유로 지금도 마찬가지입니다.
참고로 설명서의 다양한 페이지에 대한 링크/인용어:
기능(인용)의 경우:
주의: 함수 이름은 대소문자를 구분하지 않지만, 일반적으로 선언에 표시되는 함수를 호출하는 것이 좋습니다.
메서드는 오브젝트 내의 기능 이상도 이하도 아닙니다.특히 PHP 4와 하위 호환성에 대해서는 더욱 그렇습니다.
또한 변수(인용)의 경우:
PHP의 변수는 변수 이름 뒤에 달러 기호로 표시됩니다.변수 이름은 대소문자를 구분합니다.
오브젝트 속성은 오브젝트 내의 변수 이상도 이하도 아닙니다.PHP 4와 하위 호환성에 대해서는 같은 코멘트입니다.
언급URL : https://stackoverflow.com/questions/2749781/why-are-functions-and-methods-in-php-case-insensitive
'programing' 카테고리의 다른 글
생성자에 인수가 있는 Java 8 공급업체 (0) | 2022.10.06 |
---|---|
DATE 또는 DATETIME 기본값을 설정할 때 MySQL에서 오류가 발생함 (0) | 2022.10.06 |
현재 디렉터리에 있는 파일만 나열 (0) | 2022.10.06 |
임시 테이블에 결합하면 쿼리가 느려지는 이유는 무엇입니까? (0) | 2022.10.06 |
Python은 테일 재귀를 최적화합니까? (0) | 2022.10.06 |