면접 전에 회사의 면접 자료에 대해 자세히 읽어보세요. 이후 면접에 많은 도움이 될 것입니다. 오늘은 여러분께 특정 참고 가치가 있는 2022 샤오미 수석 PHP 엔지니어 면접 문제(모의 시험지)를 가져오겠습니다. 모두에게 도움이 되기를 바라면서 지금 공유합니다!
관련 추천: "2022 PHP 면접 질문 요약(모음)"
1. 오류를 예외 처리로 변환하는 데 사용할 수 있는 함수는 무엇인가요?
A: set_error_handler
B: error_reporting
C: error2Exception
D: catch
정답: A
답변 분석: set_error_handler()는 호출을 지정할 수 있습니다. 오류 발생시 뒤로가기 기능, 지정된 콜백 함수를 통해 자동으로 처리됩니다. 콜백 함수에서 새로운 예외를 발생시키면 됩니다.
2. 쉘 함수에 대한 다음 설명 중 올바른 것은 무엇입니까?
A: 쉘 함수를 먼저 호출한 다음 정의할 수 있습니다.
B: 쉘 함수는 키워드 함수를 사용하여 정의해야 합니다.
C : 쉘 함수 내의 변수를 선언할 수 있습니다. 로컬 변수의 경우
D: 쉘 함수는 return을 통해서만 값을 반환할 수 있습니다. 1은 성공, 0은 실패입니다.
정답: C
답변 분석: 호출 시 먼저 쉘 함수를 정의해야 합니다. 함수 내 로컬 변수는 로컬을 통해 정의할 수 있습니다. 0은 성공, 0이 아닌 경우 오류입니다. 올바른
3. 전체 텍스트 검색 기술에 대한 다음 설명은 올바르지 않습니다.
A: Solr는 Lucene의 검색보다 훨씬 효율적입니다. PHP에서 Solr를 호출하는 것도 매우 편리합니다.
B: MySQL에서는 필드에 FULLTEXT 인덱스를 설정하여 전체 텍스트 검색을 수행할 수 있습니다. 현재 MyISAM 및 InnoDB 테이블은 모두 FULLTEXT 인덱스를 지원합니다.
C: Sphinx는 SQL 기반의 전체 텍스트 검색 엔진으로 MySQL과 결합하여 전체 텍스트 검색이 가능하며 데이터베이스 자체보다 더 전문적인 검색 기능을 제공할 수 있습니다.
D: Lucene과 함께 제공되는 이진 단어 분할 분석기 CJKAnalyzer는 단어 분할이 매우 빠르며 일반적인 전체 텍스트 검색 요구 사항을 충족할 수 있습니다.
정답: A
답변 분석: Solr는 차세대 전체 텍스트 검색 컴포넌트이므로 Lucene을 기반으로 하기 때문에 Lucene보다 빠르다는 말은 말도 안됩니다 :)
4. 싱글톤에 대하여 모델에 대한 설명 중 틀린 것은 무엇입니까?
A: 싱글톤 모드의 목적은 전역 환경에 클래스의 인스턴스가 하나만 존재할 수 있도록 하는 것입니다.
B: 단일 관심 모드에서는 일반적으로 생성자를 비공개로 설정해야 합니다.
C: 생성자만 필요합니다. 비공개로 설정하면 세상에 하나의 인스턴스만 있다는 것을 확인할 수 있습니다
D: 데이터베이스에 연결하는 기능은 일반적으로 싱글톤 모드에서 구현됩니다
정답: C
답변 분석: 생성자를 비공개로 설정하면 새 인스턴스가 new를 통해 생성될 수 없지만 복제, 역직렬화 등을 통해 여러 인스턴스가 생성될 수는 없습니다.
5. 정규 엔진 표현 중 틀린 것은 무엇인가요?
A 일반 엔진은 크게 두 가지 범주로 나눌 수 있습니다. 하나는 DFA이고 다른 하나는 NFA입니다.
B 일반적으로 NFA 엔진이 검색 속도가 더 빠릅니다. 그러나 DFA는 표현 지향적이고 조작하기 쉽기 때문에 대부분의 프로그래머는 DFA 엔진을 선호합니다!
C NFA 표현이 우세하고 DFA 텍스트가 우세합니다.
D 엔진 유형을 결정하기 위해 우선순위 수량자 무시 및 그룹 캡처 지원 여부를 사용할 수 있습니다. NFA 지원, DFA 지원 안 함
정답:B
답변 분석: 올바른 설명은 다음과 같습니다. 일반적으로 DFA 엔진은 검색 속도가 더 빠릅니다. 그러나 NFA는 표현 지향적이고 조작하기 쉽기 때문에 대부분의 프로그래머는 NFA 엔진을 선호합니다!
6. 다음 옵션 중 상자의 정규식과 일치할 수 있는 것은 무엇입니까?
/.123d/
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
답변 분석: 이 유형의 필터링은 꺾쇠 괄호 유형을 해결할 수 있습니다
A.ISAPIB.CGIC.FastCGI
D.RESTFUL API
정답:
답변 분석: A~C는 가장 일반적으로 사용되는 모드이고, D는 a입니다. 인터페이스가 구성되는 방식.
10. 대용량 파일을 한 줄씩 탐색하려면 다음 중 어떤 방법이 더 높은 성능을 발휘하나요?
A: IteratorAggregate 인터페이스를 구현하는 클래스를 작성하고 이 클래스를 통해 foreach 순회를 사용합니다. B: 파일 내용을 메모리에 한 번에 로드한 다음 한 줄씩 이동하려면 file_get_contents를 사용하세요. C: 쉘 도구를 호출하여 exec 함수를 탐색합니다.
D: 다른 사람이 작성한 클래스 라이브러리를 사용합니다.
정답:
답변 분석: IteratorAggregate를 사용하여 파일을 하나씩 엽니다. 포인터 이동 파일 크기와 관계없이 행 순회. 큰 파일을 처리하기 위해 file_get_contents를 사용하면 쉽게 PHP 메모리 오버플로가 발생할 수 있습니다. exec를 호출하면 추가 프로세스가 생성되고 다른 사람이 작성한 클래스 라이브러리의 품질이 높지 않을 수 있습니다.
11. 다음 옵션 중 디자인 패턴이 따라야 할 원칙이 아닌 것은 무엇입니까?
A: 상속보다 구성이 낫다 B: 인터페이스를 위한 프로그래밍 C: 결합을 최대한 줄여라
D: 고성능 구문을 사용해 보세요
정답:
답변 분석 : 디자인 패턴 코드의 유지 관리성과 재사용성에 초점이 맞춰져 있으며, 옵션 D는 디자인 패턴의 초점이 아닙니다.
12. 역추적에 대한 다음 표현 중 잘못된 것은 무엇인가요?
A ab.lmn은 abcdeflmnghijklmn의 abcdeflmnghijklmn과 일치합니다. B ab.?lmn은 abcdeflmnghijklmn의 abcdeflmn과 일치합니다. C ab??c는 abcdeflmnghijklmn과 일치합니다.
D .*lmn은 abcdeflmng abcdeflmn과 일치합니다.
hijklmn의 정답 :
답변 분석: D는 그리디 매칭이므로 매칭 결과는 abcdeflmnghijklmn
13이어야 합니다. 함수에서 try catch finally 구문 구조를 사용하는 경우 return은 어디에 작성해야 합니까?
A: finally in B: try in C: catch in
D: 임의의 위치
정답:
답변 분석: try는 finally로 돌아온 후에도 계속 실행됩니다. finally에도 return이 있는 경우 최종 반환 값은 finally의 return 값입니다.
14. NOSQL에 대한 다음 설명은 올바르지 않습니다.
A: Redis는 문자열, 해시, 목록, 집합 및 순서가 지정된 집합과 같은 데이터 구조를 지원합니다. B: MongoDB는 CAP 정리에서 AP를 지원하고, MySQL은 CAP에서 CA를 지원합니다. 모두 불가능 존재를 지원합니다. C: MongoDB는 먼저 컬렉션 구조를 만들지 않고도 데이터를 직접 삽입할 수 있습니다. 현재 MongoDB는 트랜잭션을 지원하지 않습니다.
D: Memcache는 TCP 프로토콜과 UDP 프로토콜을 모두 지원합니다. Memcache에 PHP 세션을 저장할 수 있습니다.
정답:
답변 분석: Redis는 트랜잭션을 지원합니다.
15. Innodb 잠금 메커니즘에 대한 설명 중 잘못된 것은 무엇입니까?
A: Innodb는 테이블 잠금과 행 잠금의 두 가지 잠금 메커니즘을 제공합니다. B: Innodb의 테이블 잠금은 테이블이 변경될 때 트리거됩니다. C: Innodb는 잠금을 업데이트할 때 관련된 행에 자동으로 추가합니다. 미러 복사본을 생성합니다. 이때 선택 시 미러 복사본의 데이터가 쿼리됩니다.
D: Innodb 행 잠금 상태에서는 읽기에는 영향이 없지만 쓰기에는 영향을 받습니다(데이터 관련)
정답 :
16. 다음 중 매주 수요일 01:00부터 04:00까지 3분마다 실행되는 crontab 명령을 생성하는 것은 무엇입니까?
A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh 정답: C 답변 분석: A : 매주 수요일 1시 4분에 1분마다 실행 B: 매주 수요일 1시 4시에 3분마다 실행 C: 요구 사항 충족 D: 매일 1시 4분에 3분마다 실행 17. 분할하기 전에는 시스템의 많은 목록과 세부 정보 페이지에 필요한 데이터가 SQL 조인을 통해 완성될 수 있었습니다. 분할 후 데이터베이스는 다른 인스턴스와 다른 호스트에 분산될 수 있으며 조인은 매우 번거롭습니다. 다음 중 이 문제에 대한 효과적인 해결책이 아닌 것은 무엇입니까? 글로벌 테이블, 즉 시스템의 모든 모듈이 의존할 수 있는 일부 테이블이 각 라이브러리에 저장됩니다. 정답: C 답변 분석: 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다. 읽기 동시성을 확장할 수만 있고 데이터베이스 간 조인 문제를 완화할 수는 없습니다. 18. 네트워크 IO 모델과 관련하여 다음 중 올바른 것은 무엇입니까? A.Select는 Epoll보다 빠릅니다. 정답: D 답변 분석: epoll이 더 빠릅니다. B nginx는 epoll 모델을 사용합니다. C apache는 select 19만 지원합니다. PHP가 실행되면 Scanning(Lexing) - Compilation - Execution - Parsing의 실행 프로세스가 있으며 그 의미는 다음과 같습니다. A: PHP 코드를 언어 조각으로 변환합니다. (토큰), 토큰을 간단하고 의미 있는 표현식으로 변환, 표현식을 Opocdes로 컴파일, Opcode를 순서대로 실행 정답: C 정답 분석: 정답은 C이며, 정답 순서는 Scanning(Lexing), Parsing입니다. , Compilation, Execution 관련 추천: 1, 2018 – 2022 프론트엔드 JavaScript 인터뷰 질문(모음) 위 내용은 전체 내용입니다. 이 기사가 모든 사람의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !
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
B 필드 중복, "주문 테이블"에 "판매자 ID"를 저장하는 동시에 판매자의 "이름" 필드도 중복되므로 주문 세부 정보를 쿼리할 때 "판매자 사용자 테이블"을 쿼리할 필요가 없습니다.
C 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다.
D 데이터 동기화, 예약된 A 데이터베이스의 tbl_a 테이블은 B 데이터베이스의 tbl_b와 연결되며 지정된 테이블은 예약된 간격에 따라 마스터에서 슬레이브로 동기화될 수 있습니다.
B.nginx는 select 모델을 사용합니다.
C.apache는 select와 epoll 간 전환을 지원합니다.
D.epoll은 더 높은 동시성을 지원할 수 있습니다.
B: PHP 코드를 언어 조각(토큰)으로 변환, 토큰을 간단하고 의미 있는 표현식으로 변환 공식, Opcode를 순서대로 실행, 컴파일 표현식을 Opocdes로 변환
C: PHP 코드를 언어 조각(토큰)으로 변환, 표현식을 Opocdes로 컴파일, Opcode를 순서대로 실행하고 토큰을 간단하고 의미 있는 표현식으로 변환
D: PHP 코드를 언어 조각(토큰)으로 변환, 표현식을 Opocdes, 토큰을 간단하고 의미 있는 표현으로 변환하고 Opcode를 순서대로 실행하세요