>  기사  >  백엔드 개발  >  2017년 PHP 면접 질문과 답변의 가장 포괄적인 요약

2017년 PHP 면접 질문과 답변의 가장 포괄적인 요약

黄舟
黄舟원래의
2018-05-14 14:14:3415619검색

최근 인터넷에서 PHP 인터뷰를 어떻게 해야 하는지 묻는 친구들을 많이 봤습니다. 이는 업무 경험이 있거나 실무 프로젝트가 있는 친구들에게는 문제가 되지 않지만, 막 PHP를 배운 친구들에게는 PHP 인터뷰 하지만 매우 중요한 단계입니다. , 그래서 오늘 PHP 중국어 웹사이트에서는 많은 프로그래머들이 인터뷰 중에 접하게 되는 PHP 인터뷰 질문에 대한 요약을 제공할 것입니다! 도움이 되길 바랍니다!

1부: PHP 기본 면접 질문

1. PHP 언어의 주요 장점 중 하나는 크로스 플랫폼입니다.

PHP 실행 환경의 최적 조합은 Apache+MySQL+PHP입니다. 이 실행 환경은 다양한 운영 체제(예: Windows, Linux 등)에서 구성할 수 있으며 운영 체제에 의해 제한되지 않으므로 크로스 플랫폼이라고 합니다

2. 어떤 웹 프론트엔드 기술을 마스터했는지 알려주세요.

DIV+CSS 웹 페이지 레이아웃, JavaScript, jQuery 프레임워크, 포토샵 이미지 처리에 능숙함

3. 요즘 프로그래밍에서 MVC 3계층 구조가 자주 사용됩니다. 장점은 무엇입니까?

MVC의 세 가지 계층은 각각 비즈니스 모델, 뷰 및 컨트롤러를 나타냅니다. 컨트롤러 계층은 모델을 호출하여 데이터를 처리한 다음 데이터를 뷰 계층에 매핑하여 표시합니다. ① 코드 재사용성을 확보할 수 있습니다. ②M과 V 구현 코드 분리를 통해 동일한 프로그램에서 서로 다른 표현식을 사용할 수 있습니다

4.

JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. json 데이터 형식은 고정되어 있으며 여러 언어로 데이터 전송에 사용할 수 있습니다. ​

json 형식을 처리하는 PHP의 기능은 다음과 같습니다. json_decode(string $json [, bool $assoc])는 JSON 형식 문자열을 받아들이고 이를 PHP 변수로 변환합니다. 매개변수 json은 디코딩할 json 문자열 형식 문자열입니다. assoc 이 매개변수가 TRUE이면 객체 대신 배열을 반환합니다.

Json_encode: PHP 변수를 json 형식으로 변환

5.

ajax는 부분 새로 고침을 달성하기 위해 javascript 또는 JQuery 프레임워크를 통해 구현할 수 있는 비동기 전송 기술로, 서버에 대한 부담을 줄이고 사용자 경험을 향상시킵니다

6. 프로그램의 실행 효율성을 향상시키려면?

① SQL 문을 최적화하고, 쿼리 문에서 select *를 사용하지 마세요. 어떤 필드를 사용하여 테이블 연결 대신 하위 쿼리를 덜 사용하세요.

3 프로그램에서 자주 사용되는 데이터에 대한 캐시를 생성합니다.


7. (함수의 '매개변수'와 '반환 값'에 중점을 둡니다)

①array()는 배열을 생성합니다.

②count()는 배열의 요소 수를 반환합니다. ) 하나 이상의 요소가 배열의 끝에 삽입됩니다(스택에 푸시됨).

¼array_column()은 입력 배열의 단일 열 값을 반환합니다. 두 개의 배열을 병합하여 새 배열을 생성합니다.

7array_unique()는 배열에서 중복된 값을 제거합니다.

8in_array()는 지정된 값이 배열에 있는지 확인합니다.

8. PHP에서 문자열을 처리하는 데 일반적으로 사용되는 함수는 무엇입니까?

①trim()은 문자열 양쪽의 공백 문자와 기타 문자를 제거합니다.

substr_replace()는 문자열의 일부를 다른 문자열로 바꿉니다. 문자열에 하위 문자열이 나타나는 경우가 있습니다.

⑤strtolower()는 문자열을 소문자로 변환합니다.

⑥strtoupper()는 문자열을 대문자로 변환합니다. ;

7strtr()는 문자열에서 특정 문자를 변환합니다.

8strrchr()는 다른 문자열에서 마지막으로 나타나는 문자열을 찾습니다. 다른 문자열에서 처음 나타나는 경우(대소문자 구분) strrev()는 문자열의 길이를 반환합니다. str_replace()는 문자열의 일부 문자를 바꿉니다(대소문자 구분). print()는 하나 또는 추가 문자열; 분해()는 문자열을 배열로 분해합니다. is_string()은 문자열에서 HTML 태그를 제거합니다. 중국어와 영어를 가로채는 함수입니다. 2부: PHP 면접 질문의 데이터베이스 부분

1. 일반적인

관계형 데이터베이스관리 시스템 제품은 무엇인가요?

답변: Oracle, SQL Server, MySQL, Sybase, DB2, Access 등

2. 거래란 무엇인가요? 그리고 그 특징은?

답변: 트랜잭션: 일련의 데이터베이스 작업이며 데이터베이스 애플리케이션의 기본 논리 단위입니다. 트랜잭션 특성: (1) 원자성: 즉, 불가분성, 트랜잭션이 모두 실행되거나 전혀 실행되지 않습니다.

(2) 일관성 또는 문자열 가능성. 트랜잭션을 실행하면 데이터베이스가 하나의 올바른 상태에서 다른 올바른 상태로 변환됩니다.

(3) 격리. 트랜잭션이 올바르게 커밋되기 전에는 트랜잭션에 의한 데이터 변경 사항이 다른 트랜잭션에 제공될 수 없습니다.

(4) 지속성. 트랜잭션이 올바르게 제출되면 그 결과는 데이터베이스에 영구적으로 저장됩니다. 트랜잭션 제출 후 다른 실패가 발생하더라도 해당 트랜잭션의 처리 결과는 저장됩니다. 또는 다음과 같이 이해하십시오.

트랜잭션은 논리적 작업 단위로 함께 바인딩된 SQL 문 그룹입니다. 문 작업이 실패하면 전체 작업이 실패하고 향후 작업은 해당 작업으로 롤백됩니다. 작업 전 상태 또는 노드가 있습니다. 무언가가 실행되거나 실행되지 않도록 하기 위해 트랜잭션을 사용할 수 있습니다. 그룹화된 문을 트랜잭션으로 간주하려면 ACID 테스트, 즉 원자성, 일관성, 격리성 및 내구성을 통과해야 합니다.

3 char과 varchar의 차이점은 무엇입니까?

답변: 고정 길이 유형이고, varchar는 가변 길이 유형입니다. 차이점은

char(M) 유형의 데이터 열이며, 각 값은 M 바이트를 차지합니다. 특정 길이가 M보다 작으면 MySQL은 오른쪽에 공백 문자를 채웁니다. (패딩 공백 문자는 검색 작업 중에 제거됩니다.) varchar(M) 유형 데이터 열에서 각 값은 해당 길이를 기록하는 데 충분한 바이트와 1바이트만 차지합니다. 즉, 총 길이는 L+1바이트입니다. ).

4. MySQL 스토리지 엔진, myisam과 innodb의 차이점.

답변:

MyISAM은 테이블 잠금이 빈번하고 교착 상태가 없는 애플리케이션에 적합합니다. 작은 데이터, 작은 동시성에 적합합니다. 트랜잭션을 지원하는 스토리지 엔진; 삽입 및 업데이트 작업이 많은 애플리케이션에 적합합니다. 적절하게 설계되면 행 잠금입니다(가장 큰 차이점은 잠금 수준에 있습니다). 데이터 및 대규모 동시성.

5. 데이터 테이블 유형은 무엇입니까?

답변: MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV 등

MyISAM: 성숙하고 안정적이며 관리하기 쉽고 읽기 빠릅니다. 일부 기능(트랜잭션 등)은 테이블 수준 잠금을 지원하지 않습니다.

InnoDB: 트랜잭션, 외래 키 및 기타 기능, 데이터 행 잠금을 지원합니다. 많은 공간을 차지하고 전체 텍스트 색인 생성 등을 지원하지 않습니다.

3부: PHP 면접 질문 - 객체 지향

1. 객체 지향이란 무엇입니까? (이해를 가지고 대답하세요)

답변: 객체 지향 OO = 객체- 지향 분석 OOA + 객체 지향 설계 OOD + 객체 지향 프로그래밍 OOP는 "모든 것이 객체"이며 모든 것이 독립적인 객체(단위)로 간주되어 자체 기능을 완성할 수 있다는 것입니다. C와 같은 기능으로 나누어지지 않습니다.

현재 순수 OO 언어는 주로 Java와 C#입니다. PHP와 C++도 OO를 지원합니다. ​

2. private, protected, public 한정자의 접근 권한을 간략하게 설명합니다.

답변: private: Private 멤버는 클래스 내부에서만 접근할 수 있습니다.

protected: 보호된 멤버이며 클래스 및 상속된 클래스 내에서 액세스할 수 있습니다.

public: 공개 회원, 완전 공개, 접근 제한 없음.

3. 힙과 스택의 차이점은 무엇인가요?

스택은 컴파일 중에 할당되는 메모리 공간이므로 코드에서 스택의 크기를 명확하게 정의해야 합니다.

힙은 프로그램 실행 중에 동적으로 할당되는 메모리 공간입니다. 런타임은 할당할 힙 메모리의 크기를 결정합니다.

4. 객체지향의 특징은 무엇인가요?

답변: 주로 캡슐화, 상속, 다형성이 있습니다. 4가지 측면인 경우 추상화를 추가합니다.

5. 생성자는 무엇이며 소멸자는 무엇이며 그 기능은 무엇입니까?

답변: 생성자(메서드)는 객체가 생성된 후 객체가 자동으로 호출하는 첫 번째 메소드입니다. 이는 선언된 모든 클래스에 존재하며 특별한 member 메서드입니다. 그 기능은 일부 초기화 작업을 수행하는 것입니다. Php에서는 constructor()를 사용하여 생성자 메서드를 선언하는데 하나만 선언할 수 있습니다.

소멸자(메서드)는 생성자와 정반대입니다. 객체가 소멸되기 전에 자동으로 호출되는 마지막 메소드입니다. 파일 닫기 및 메모리 해제와 같은 객체를 파괴하기 전에 일부 특정 작업을 수행하는 데 사용되는 PHP5에 새로 추가된 콘텐츠입니다.

요약:

PHP 면접 질문은 회사마다 다릅니다. 여기에서는 친구들이 자주 접하는 PHP 면접 질문을 요약했지만, 요약 PHP 면접 질문을 기반으로 요약할 수도 있습니다. 자신을 확장하고 확장하십시오!

관련 추천:

1.2017 채용 시즌: PHP 면접 질문 요약!

2.가장 자주 묻는 PHP 면접 질문 11가지

3.php 면접 질문 공유

위 내용은 2017년 PHP 면접 질문과 답변의 가장 포괄적인 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.