C 개발자를위한 PHP
PHP를 생각하는 가장 간단한 방법은 HTML 문서에 임베드 할 수있는 해석 된 C입니다. 언어 자체는 유형이 지정되지 않은 변수, 많은 웹 특정 라이브러리가 내장되어 있으며 모든 것이 즐겨 찾는 웹 서버에 직접 연결된다는 점을 제외하면 C와 매우 유사합니다.
문 구문과 함수 정의는 변수 앞에 항상 $가오고 함수에 별도의 프로토 타입이 필요하지 않다는 점을 제외하면 익숙해야합니다.
여기서는 PHP와 C의 유사점과 차이점을 설명합니다.
유사점
Syntax− 대체로 PHP 구문은 C에서와 동일합니다. 코드는 공백을 구분하지 않고 문은 세미콜론으로 종료되며 함수 호출은 동일한 구조 (my_function (expression1, expression2))를 가지며 중괄호 ({및})는 블록. PHP는 C 및 C ++ 스타일 주석 (/ * * / 및 //)과 Perl 및 쉘 스크립트 스타일 (#)도 지원합니다.
Operators − 할당 연산자 (=, + =, * = 등), 부울 연산자 (&&, ||,!), 비교 연산자 (<,>, <=,> =, ==,! =) , 기본 산술 연산자 (+,-, *, /, %)는 모두 C에서와 같이 PHP에서 작동합니다.
Control structures− 기본 제어 구조 (if, switch, while, for)는 중단 및 계속 지원을 포함하여 C에서와 같이 작동합니다. 한 가지 주목할만한 차이점은 PHP의 스위치가 문자열을 케이스 식별자로 받아 들일 수 있다는 것입니다.
Function names − 문서를 읽어 보면 C 함수와 동일하게 보이는 함수 이름이 많이 표시됩니다.
차이점
Dollar signs− 모든 변수는 앞에 $로 표시됩니다. 변수는 할당 전에 선언 할 필요가 없으며 내장형이 없습니다.
Types− PHP는 정수 (C의 long에 해당)와 double (C의 double에 해당)의 두 가지 숫자 유형 만 있습니다. 문자열은 임의의 길이입니다. 별도의 문자 유형이 없습니다.
Type conversion− 유형은 컴파일 시간에 확인되지 않으며 유형 오류는 일반적으로 런타임에도 발생하지 않습니다. 대신 변수와 값은 필요에 따라 유형간에 자동으로 변환됩니다.
Arrays− 배열은 C의 배열 구문과 표면적으로 유사한 구문을 갖지만 완전히 다르게 구현됩니다. 실제로 연관 배열 또는 해시이며 인덱스는 숫자 또는 문자열 일 수 있습니다. 미리 선언하거나 할당 할 필요가 없습니다.
No structure type− PHP에는 구조가 없습니다. 부분적으로는 배열과 객체 유형이 함께 필요하지 않기 때문입니다. PHP 배열의 요소는 일관된 유형일 필요는 없습니다.
No pointers− 테이프리스 변수가 비슷한 역할을하지만 PHP에서 사용할 수있는 포인터가 없습니다. PHP는 변수 참조를 지원합니다. 함수 이름을 변수에 저장하고 리터럴 이름이 아닌 변수를 사용하여 호출 할 수 있다는 점에서 어느 정도 함수 포인터를 에뮬레이션 할 수도 있습니다.
No prototypes − 현재 코드 파일이나 포함 된 파일에서 정의를 찾을 수있는 한 구현이 정의되기 전에 함수를 선언 할 필요가 없습니다.
Memory management− PHP 엔진은 효과적으로 가비지 수집 환경 (참조 카운트)이며 작은 스크립트에서는 할당 해제를 수행 할 필요가 없습니다. 새 문자열 및 개체 인스턴스와 같은 새 구조를 자유롭게 할당해야합니다. PHP5에서는 객체에 대한 소멸자를 정의 할 수 있지만 free 또는 delete가 없습니다. 메모리가 회수되기 전에 객체에 대한 마지막 참조가 사라지면 소멸자가 호출됩니다.
Compilation and linking − PHP 스크립트를위한 별도의 컴파일 단계가 없습니다.
Permissiveness− 일반적으로 PHP는 C (특히 유형 시스템에서)보다 관용적이기 때문에 새로운 종류의 실수를 피할 수 있습니다. 예기치 않은 결과가 오류보다 더 일반적입니다.