>  기사  >  백엔드 개발  >  오셔서 기본적인 PHP 인터뷰 질문을 받아보세요

오셔서 기본적인 PHP 인터뷰 질문을 받아보세요

藏色散人
藏色散人앞으로
2021-05-25 13:40:594576검색

이 기사에는 몇 가지 기본적인 PHP 인터뷰 질문이 요약되어 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

1. 오류를 예외 처리로 변환하는 데 사용할 수 있는 함수는 무엇인가요?

A: set_error_handler

B: error_reporting

C: error2Exception

D: catch

정답: *A *

답변 분석: set_error_handler()는 오류가 발생하면 콜백 함수를 지정할 수 있습니다. 지정된 콜백 함수를 통해 자동으로 처리됩니다. 콜백 함수에서 새로운 예외를 발생시키면 됩니다.

2. 쉘 기능에 대한 다음 설명 중 올바른 것은 무엇입니까?

A: 쉘 함수를 먼저 호출한 후 정의할 수 있습니다.

B: 쉘 함수는 function 키워드를 사용하여 정의해야 합니다.

C: 쉘 함수 내의 변수는 로컬 변수로 선언할 수 있습니다.

D: 쉘 함수는 반환만 가능합니다. 반환을 통한 값. 1은 성공, 0은 실패

정답: C

답변: 호출하기 전에 쉘 함수를 정의해야 하며, 선언할 때 함수 내에서 로컬 변수를 사용할 필요가 없습니다. 셸 함수 반환 값을 통해 정의할 수 있습니다. 0은 성공을 의미하고, 0이 아닌 경우 오류를 의미하며, 다른 옵션은 정확합니다.

3. 전체 텍스트 검색 기술에 대한 다음 설명 중 잘못된 것은 무엇입니까?

A: Solr은 검색에서 Lucene보다 훨씬 효율적인 차세대 전체 텍스트 검색 구성 요소는 HTTP 액세스 방법도 지원하며 PHP가 Solr을 호출하는 것도 매우 편리합니다.

B: MySQL의 필드에 FULLTEXT 인덱스를 생성하면 전체 텍스트 검색이 가능합니다. 현재 MyISAM 및 InnoDB 테이블 모두 FULLTEXT 인덱스를 지원합니다.

C: Sphinx는 전체 텍스트 검색을 위해 MySQL과 결합할 수 있는 SQL 기반 전체 텍스트 검색 엔진입니다. 데이터베이스 자체보다 더 전문적인 검색 기능을 제공할 수 있습니다.

D: Lucene과 함께 제공되는 이진 단어 분할 분석기 CJKAnalyzer는 단어 분할이 매우 빠르며 일반적인 전체 텍스트 검색 요구 사항을 충족할 수 있습니다.

정답: *A *

정답 분석: Solr는 차세대 전체 텍스트 검색 컴포넌트입니다. Lucene을 기반으로 하기 때문에 Lucene보다 빠르다는 말은 말도 안됩니다 :)

4 .싱글턴 모드에 관해서는 틀렸습니다. 예?

A: 싱글톤 모드의 목적은 전역 환경에 클래스의 인스턴스가 하나만 존재할 수 있도록 하는 것입니다.

B: 단일 관심 모드에서는 일반적으로 생성자를 비공개로 설정해야 합니다

C: 생성자만 필요합니다. 비공개로 설정하면 세상에 단 하나의 인스턴스만 존재하게 됩니다

D: 데이터베이스에 연결하는 기능은 일반적으로 싱글톤 모드로 구현됩니다

정답: *C *

답변 분석: The 생성자는 비공개로 설정되어 새 인스턴스 생성을 전달할 수만 있지만 복제, 역직렬화 등을 통해 여러 인스턴스를 생성할 수 있습니다.

5. 정규 엔진 표현 중 틀린 것은 무엇인가요?

A 일반 엔진은 크게 두 가지 범주로 나눌 수 있습니다. 하나는 DFA이고 다른 하나는 NFA입니다.

B 일반적으로 NFA 엔진이 검색 속도가 더 빠릅니다. 그러나 DFA는 표현 지향적이고 조작하기 쉽기 때문에 프로그래머는 일반적으로 DFA 엔진을 선호합니다.

C NFA 표현식 중심, DFA 텍스트 중심.

D 우선순위 수량자 무시 및 그룹 캡처 지원 여부를 사용하여 엔진 유형을 결정할 수 있습니다. NFA는 지원됨, DFA는 지원되지 않음

정답: B

답변 분석: 정답 진술은 다음과 같아야 합니다. 일반적으로 DFA 엔진은 검색 속도가 더 빠릅니다. 그러나 NFA는 표현 지향적이고 조작하기 쉽기 때문에 프로그래머는 일반적으로 NFA 엔진을 선호합니다!

6. 다음 옵션 중 상자의 정규식과 일치할 수 있는 것은 무엇입니까?

/.Sd/

A.123

B.**1234

C.1234

D.123

정답: B

이 질문의 핵심은 이해하는 것입니다. 이 정규 표현식의 의미는 왼쪽에서 오른쪽으로, 먼저 0개 이상의 임의 문자(.), 별표(), 123, 마지막으로 숫자입니다. 그럼 답은 B입니다.

7. 데이터베이스에 대한 다음 설명 중 잘못된 것은 무엇입니까?

A: 효율성을 위해 데이터베이스는 여러 개의 읽기 라이브러리를 가질 수 있습니다.

B: 데이터베이스는 상시 대기를 위해 마스터-슬레이브를 사용할 수 있습니다.

C: 데이터베이스는 다중 마스터 및 다중 슬레이브 아키텍처를 제공할 수 없습니다

D: 데이터베이스 마스터-슬레이브는 로그를 통해 동기화됩니다

정답: C

답변 분석: 데이터베이스는 다중 마스터 및 다중 슬레이브 아키텍처를 제공할 수 있습니다.

8. 다음 중 XSS 취약점을 해결하는 방법이 아닌 것은 무엇입니까?

A: 매개변수에 대해 htmlspecialchas 필터링 수행

B: 매개변수에 화이트리스트 필터링 사용

C: 입력 콘텐츠가 브라우저에 표시되는 것을 허용하지 않음

D: js 태그에서 사용자 입력 콘텐츠 출력 금지

정확함 답변: *A *

답변 분석: 이 유형의 필터링은 꺾쇠 괄호 유형 xss를 해결할 수 있지만 js 태그의 xss는 해결할 수 없습니다.

9 다음 중 PHP SAPI 모드가 아닌 것은 무엇입니까?

A.ISAPI

B.CGI

C.FastCGI

D.RESTFUL API

정답: D

답변 분석: A~C가 가장 일반적으로 사용되는 모드이고, D는 인터페이스 구성 방식입니다. .

10. 대용량 파일을 한 줄씩 탐색하려면 다음 중 어떤 방법이 더 성능이 좋나요?

A: IteratorAggregate 인터페이스를 구현하는 클래스를 작성하고 이 클래스를 통해 foreach 순회를 사용하세요.

B: file_get_contents를 사용하여 파일 내용을 메모리에 한 번에 로드한 다음 한 줄씩 순회합니다.

C: exec 함수를 통해 쉘 도구를 호출하여 순회

D: 다른 사람이 작성한 클래스 라이브러리를 사용하세요

정답: A

답변 분석: IteratorAggregate를 사용하여 파일을 열고 파일 크기에 관계없이 포인터를 이동하여 한 줄씩 탐색합니다. 큰 파일을 처리하기 위해 file_get_contents를 사용하면 쉽게 PHP 메모리 오버플로가 발생할 수 있습니다. exec를 호출하면 추가 프로세스가 생성되고 다른 사람이 작성한 클래스 라이브러리의 품질이 높지 않을 수 있습니다.

11. 다음 옵션 중 디자인 패턴이 따라야 할 원칙이 아닌 것은 무엇입니까?

A: 상속보다 구성이 낫다

B: 인터페이스 프로그래밍

C: 결합을 최대한 줄여라

D: 고성능 구문을 사용해 보세요

정답: D

답변 분석: 디자인 패턴에 중점을 둡니다. 요점은 코드의 유지 관리성과 재사용 가능성입니다. 옵션 D는 디자인 패턴의 초점이 아닙니다.

12. 다음 중 역추적에 대한 표현이 잘못된 것은 무엇인가요?

A ab.lmn은 abcdeflmnghijklmn의 abcdeflmnghijklmn과 일치합니다.

B ab.?lmn은 abcdeflmnghijklmn의 abcdeflmn과 일치합니다.

C ab??c는 abcdeflmnghijklmn의 abcdeflmnghijklmn과 일치합니다.

D .*lmn은 ab abcdeflmn과 일치합니다.

in cdeflmnghijklmn이 맞습니다. 답변: D

답변 분석: D는 그리디 매칭이므로 매칭 결과는 abcdeflmnghijklmn

13이어야 합니다. 함수에서 try catch finally 구문 구조를 사용하는 경우 return은 어디에 작성해야 합니까?

A: finally in

B: try in

C: catch in

D: 모든 위치

정답: A

답변 분석: finally는 try in으로 돌아온 후 계속 실행됩니다. 또한 finally in finally 반환의 경우 최종 반환 값은 finally의 반환 값입니다.

14. NOSQL에 대한 다음 설명은 올바르지 않습니다.

A: Redis는 문자열, 해시, 목록, 집합 및 순서가 지정된 집합과 같은 데이터 구조를 지원합니다.

B: MongoDB는 CAP 정리에서 AP를 지원하고, MySQL은 CAP 정리에서 CA를 지원하며 모두 불가능을 지원합니다.

C: MongoDB는 먼저 Collection 구조를 만들지 않고도 데이터를 직접 삽입할 수 있습니다. 현재 MongoDB는 트랜잭션을 지원하지 않습니다.

D: Memcache는 TCP 프로토콜과 UDP 프로토콜을 모두 지원합니다. Memcache에 PHP 세션을 저장할 수 있습니다.

정답: A

정답 분석: Redis는 트랜잭션을 지원합니다.

15. Innodb 잠금 메커니즘에 대한 설명 중 잘못된 것은 무엇입니까?

A: Innodb는 테이블 잠금과 행 잠금이라는 두 가지 잠금 메커니즘을 제공합니다.

B: 테이블이 변경되면 Innodb의 테이블 잠금이 실행됩니다.

C: Innodb는 잠금을 업데이트할 때 관련된 행에 자동으로 추가합니다. 미러 복사본을 생성합니다. 이때 선택 시 미러 복사본의 데이터가 쿼리됩니다.

D: Innodb 행 잠금 상태에서는 읽기에는 영향이 없지만 쓰기에는 영향을 받습니다(데이터 관련)

맞습니다. 답변 :A

16. 다음 중 매주 수요일 01:00부터 04:00까지 3분마다 실행되는 crontab 명령을 생성하는 것은 무엇입니까?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh

B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh

C:/3 1- 4 3 /bin/bash /home/sijiaomao/ok.sh

D:/3 1-4 * /bin/bash /home/sijiaomao/ok.sh

정답 : C

답변 분석 : A : 매주 수요일 1시 4분에 1분마다 실행 B: 매주 수요일 1시 4시에 3분마다 실행 C: 요구 사항 충족 D: 매일 1시 4분에 3분마다 실행

17. 분할 중 이전에는 시스템의 많은 목록과 세부 정보 페이지에 필요한 데이터가 SQL 조인을 통해 완성될 수 있었습니다. 분할 후 데이터베이스는 다른 인스턴스와 다른 호스트에 분산될 수 있으며 조인은 매우 번거롭습니다. 다음 중 이 문제에 대한 효과적인 해결책이 아닌 것은 무엇입니까?

글로벌 테이블, 즉 시스템의 모든 모듈이 의존할 수 있는 일부 테이블이 각 라이브러리에 저장됩니다.

B 필드는 "주문 테이블"에 "판매자 ID"가 저장되어 있지만 판매자의 "이름" 필드도 중복되어 있으므로 주문 세부 정보를 조회할 때 "판매자 사용자 테이블"을 쿼리할 필요가 없습니다. ".

C 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다.

D 데이터 동기화, 데이터베이스 A의 tbl_a 테이블은 데이터베이스 B의 tbl_b와 정기적으로 연결되며 지정된 테이블은 일정한 간격으로 마스터와 슬레이브 간에 동기화될 수 있습니다.

정답: C

정답 분석: 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다. 읽기 동시성을 확장할 수만 있고 데이터베이스 간 조인 문제를 완화할 수는 없습니다.

18. 네트워크 IO 모델과 관련하여 다음 중 올바른 것은 무엇입니까?

A.Select는 Epoll보다 빠릅니다.

B.nginx는 select 모델을 사용합니다.

C.apache는 select와 epoll 간 전환을 지원합니다.

D.epoll은 더 높은 동시성을 지원할 수 있습니다.

정답: D

답변 분석 : epoll이 더 빠릅니다. B nginx는 epoll 모델을 사용합니다. C apache는 select

19만 지원합니다. PHP가 실행될 때 스캔(렉싱) - 컴파일 - 실행 - 구문 분석의 실행 프로세스가 있으며 해당 의미는 다음과 같습니다.

A: PHP 코드를 언어 조각(토큰)으로 변환합니다. 토큰을 간단하고 의미 있는 표현으로 변환하고, 표현식을 Opocdes로 컴파일하고, Opcode를 순서대로 실행합니다

B: PHP 코드를 언어 조각(토큰)으로 변환하고, 토큰을 간단하고 의미 있는 표현으로 변환하고, Opcode를 순서대로 실행합니다. 표현식을 Opocdes

로 컴파일하세요

C: PHP 코드를 언어 조각(토큰)으로 변환, 표현식을 Opocdes로 컴파일, Opcode를 순차적으로 실행하고 토큰을 간단하고 의미 있는 표현식으로 변환

D: PHP 코드를 언어 조각(토큰)으로 변환), 표현식을 Opocdes로 컴파일, 토큰을 간단하고 의미있는 표현으로 변환하고 Opcode를 순서대로 실행합니다

정답: C

정답 분석: 정답은 C이며, 정답 순서는 Scanning(Lexing), Parsing, Compilation, Execution

위 내용은 오셔서 기본적인 PHP 인터뷰 질문을 받아보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제