>  기사  >  백엔드 개발  >  PHP 인터뷰 지식 포인트 요약

PHP 인터뷰 지식 포인트 요약

不言
不言원래의
2018-07-14 11:41:381552검색

이 글은 참고할만한 가치가 있는 PHP 면접 지식 포인트를 주로 소개합니다. 이제 도움이 필요한 친구들이 참고할 수 있습니다.

# 🎜🎜#복사해서 목차를 만들어 보세요. 구체적인 사항은 잘 모르기 때문에 목록에 있는 문제들을 천천히 공부해 볼 생각입니다#🎜🎜 ## 🎜🎜#중국 PHP 면접 모범사례

이 창고는 주로 국내 PHP 면접에서 자주 묻는 지식 포인트를 요약한 것입니다. 지식 포인트만 타겟 방식으로 지적하고, 스스로 관련 정보를 찾아 체계적으로 공부해야 합니다. 그것이 무엇인지뿐만 아니라 그 이유와 그 뒤에 숨은 원리도 이해할 수 있기를 바랍니다.

해당 지식 포인트에 대한 매우 체계적인 정보가 있다면 PR에 링크를 추가하는 것도 환영합니다. 포크를 사용하는 것은 권장되지 않습니다. 정보는 언제든지 업데이트됩니다.

지금 다음과 같은 상황에 처해 계시다면 이 정보가 매우 적합합니다. 어디서부터 시작해야할지 모르겠나요? 필드가 얼마나 깊은지 모르겠어요

기본장
  • # 🎜🎜#

    대부분의 배열 처리 함수 이해

  • 문자열 처리 함수(차이 mb_ 계열 함수)

  • #🎜🎜 #
  • & 인용문, 사례분석 결합

    #🎜 🎜#

  • == 차이점 === 🎜🎜#모든 마법함수 이해
#🎜🎜 #

static, $this, self 차이
  • private, protected, public과 final의 차이
  • OOP 사고
  • 추상 클래스와 인터페이스는 별도로 사용됩니다
  • # 🎜🎜#
  • What 🎜🎜#__construct와 __destruct의 차이점

  • 정적 함수(클래스와 함수 구분)

  • # 🎜🎜#__toString () 함수

  • 작은따옴표

    Difference

  • 공통 HTTP 상태 코드, 의미는 무엇인가요?

  • 301 404는 무엇을 의미하나요?

고급 기사

  • 자동 로드, Composer 원칙

  • 세션 공유, 생존 시간

  • 예외 처리

  • 객체 반복 방법

  • 변형 방법 작업 객체 $obj[ key ]

  • 오브젝트 $obj(123)를 기능화하는 방법;

  • yield가 무엇인지, 사용 시나리오를 알려주세요

  • PSR이 무엇인지, PSR-1, 2, 4, 7을 얻는 방법

  • 클라이언트 IP 및 서버 IP 주소

  • PHP 예외 프롬프트 여는 방법

  • 301 리디렉션을 반환하는 방법

  • 확장 프로그램 설치 경로를 얻는 방법

  • 문자열과 숫자의 원리 비교, 0으로 시작하는 8진수, 0x로 시작하는 16진수

  • BOM 헤더는 무엇이며 이를 제거하는 방법은 무엇입니까? MVC란 무엇입니까? 템플릿 엔진이 해결하는 문제는 무엇이며 구현 원칙(Smarty, Twig) , Blade)

  • 체인 작업 구현 방법 $obj->w()->m( )->d();

  • Xhprof 및 Xdebug 성능 디버깅 도구는

  • index array [1, 2] 배열 차이점은 무엇인가요

  • 연습

  • 2차원 배열이 주어졌을 때 특정 필드에 따라 정렬$obj->w()->m()->d();

  • Xhprof 、Xdebug 性能调试工具使用

  • 索引数组 [1, 2] 与关联数组 ['k1'=>1, 'k2'=>2] 有什么区别

实践篇

  • 给定二维数组,根据某个字段排序

  • 如何判断上传文件类型,如:仅允许 jpg 上传

  • 不使用临时变量交换两个变量的值 $a=1; $b=2; => $a=2; $b=1;

  • strtoupper 在转换中文时存在乱码,你如何解决?php echo strtoupper('ab你好c');

  • 결정하는 방법 업로드된 파일 형식: jpg 업로드만 허용됩니다

  • 임시 변수를 사용하여 두 변수의 값을 교환하지 마세요. $a=1 ; =2; => $a=2; $b=1;

    🎜🎜strtoupper 중국어를 변환할 때 문자가 깨져서 나오는 경우가 있습니다. 해결해? php echo strtoupper('ab hello c');🎜🎜🎜🎜Websocket, Long-Polling, Server-Sent Events(SSE) 차이점🎜🎜🎜🎜"헤더가 이미 있습니다. 전송됨' 오류의 의미와 이를 방지하는 방법🎜

알고리즘

  • 퀵 정렬(손글씨)

  • 버블 정렬(손글씨)

  • 이진 검색(이해)

  • 검색 알고리즘 KMP(이해)

  • 깊이, 넓이 우선 검색 (이해)

  • LRU 캐시 제거 알고리즘(이해, Memcached는 이 알고리즘을 사용함)

데이터 구조(이해)

  • 힙 및 스택 특성

  • queue

  • hash Table

  • 링크된 목록

비교 기사

  • 쿠키와 세션의 차이점

  • GET /code> 차이점<code style='font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05)'>GET 与 POST 区别

  • include 与 require 区别

  • include_once 与 require_once

  • 포함필수 차이점

  • include_oncerequire_once 차이점

  • Memcached와 Redis의 차이점

  • MySQL 스토리지 엔진과 차이점(확실히 차이점을 물어보세요) MyISAM 및 Innodb)

  • HTTP와 HTTPS의 차이점

  • Apache와 Nginx

  • define()과 const의 차이점 특성과 인터페이스의 차이점과 특성으로 해결되는 문제점은 무엇입니까?

Git과 SVN의 차이점

  • 데이터베이스 기사

    🎜🎜MySQL🎜
    • Index, 공동 인덱스(적중 조건)

    • 하위 데이터베이스 및 하위 테이블(가로 테이블, 세로 테이블) 水平分表垂直分表

    • 分区

    • 会使用 explain 分析 SQL 性能问题,了解各参数含义

    • Slow Log(有什么用,什么时候需要)

    • 重点理解 typerowskey

    • CRUD

    • JOIN、LEFT JOIN 、RIGHT JOIN、INNER JOIN

    • UNION

    • GROUP BY + COUNT + WHERE 组合案例

    • 常用 MySQL 函数,如:now()、md5()、concat()、uuid()等

    • 1:11:nn:n

    • Partition

    • 설명 SQL 성능 문제를 분석하고 각 매개변수의 의미를 이해합니다. 로그(무엇을 위해 사용되는지, 언제 필요한지 포함)

    이해를 위한 핵심 포인트 유형, /code>, <code style=" 글꼴 계열: SFMono-Regular, Consolas, " liberation mono menlo courier monospace color: rgba>키
  • CRUD
    • JOIN, LEFT JOIN, RIGHT JOIN, INNER JOIN
  • UNION

    • GROUP 으로 + COUNT + WHERE 조합 사례

    • 일반적으로 사용되는 MySQL 함수: now(), md5(), concat(), uuid() 등

    • 1 :11:n, n:n 각 적용 가능한 시나리오를 이해하세요 트리거가 무엇인지 알려주고 사용 시나리오를 알려주세요

    • 데이터베이스 최적화 방법

    • MSSQL(이해)

    • 최신 5개 데이터 쿼리
    • NOSQL
    • 끈기

    • 여러 데이터 유형 지원

    • 사용 가능한 CPU 멀티 코어

    • 메모리 제거 메커니즘

    ClusterCluster

    SQL 지원
  • 성능 비교
  • 거래 지원
  • 응용 시나리오
  • Redis, Memcached, MongoDB
  • 비교 및 적용 시나리오(다음 차원에서 비교 가능)
  • 이전에는 어떤 문제를 해결하기 위해 무엇을 사용했으며, 왜 그것을 선택했나요?
  • 서버 장

  • CPU, 메모리, 시간, 시스템 버전 및 기타 정보 보기

  • find 및 grep으로 파일 찾기

  • awk로 텍스트 처리

  • 파일이 있는 디렉터리 보기 명령이 있습니다

  • PHP를 직접 컴파일해 본 적이 있나요? readline 기능을 켜는 방법

    🎜🎜PHP 프로세스의 메모리 및 CPU 사용량을 확인하는 방법🎜🎜🎜🎜PHP에 확장을 추가하는 방법🎜🎜🎜🎜PHP 세션 저장 위치를 ​​수정하고 INI 구성 매개변수를 수정합니다. 🎜🎜🎜🎜로드 밸런싱이란 무엇입니까? 익숙한 것을 선택하고 그 원리를 설명하세요🎜🎜🎜🎜데이터베이스 마스터-슬레이브 복제 MS는 어떻게 동기화됩니까? 밀거나 당길까요? 동기화되지 않을까요? 어떡해🎜🎜🎜🎜데이터의 가용성을 보장하는 방법은 삭제되더라도 1분 단위로 복원이 가능합니다. 당신은 무엇을 할 것인가? 🎜🎜🎜🎜데이터베이스 연결이 너무 많아 최대값을 초과했습니다. 아키텍처를 최적화하는 방법입니다. 어떤 편의로 처리할 수 있나요? 🎜🎜🎜🎜502 가능한 이유는 무엇인가요? 504 문제를 해결하는 방법은 무엇입니까? 🎜

아키텍처

  • 부분 운영 및 유지 관리(이해):

    • 로드 밸런싱(Nginx, HAProxy, DNS)

    • 마스터-슬레이브 복제(MySQL, Redis)

    • 데이터 중복성, 백업(MySQL 증분, 전체 원칙)

    • 모니터링 및 검사(생존 및 서비스 가용성의 두 가지 차원)

    • MySQL, Redis, Memcached 프록시, 클러스터 목적 및 원칙

    • 샤딩

    • 고가용성 Cluster

    • RAID

    • 소스 코드 컴파일, 메모리 튜닝

  • caching

    • 직장에서 캐싱이 필요할 때마다 그 이유를 간략하게 설명하세요

  • 성능 튜닝

  • 차원별 모니터링 솔루션

  • 로그수집 중앙처리 솔루션

  • 국제화

  • 데이터베이스 설계

  • 정적 솔루션

  • 공통 그리기 PHP 애플리케이션 아키텍처 다이어그램

Framework

  • ThinkPHP(TP), CodeIgniter(CI), Zend(비OOP 시리즈)

  • Yaf, Phalcon(C 확장 시스템)

  • Yii, Laravel, Symfony(순수 OOP 시리즈)

  • Swoole, Workerman(네트워크 프로그래밍 프레임워크)

  • 비교 프레임워크는 여러 방향에서 다릅니다

    • 순수 OOP인지 여부

    • 클래스 라이브러리 로딩 방법(자동 로드 비교 작곡가 표준 작성)

    • Ease 사용 방향 (CI 기본 프레임워크, Laravel은 개발 효율성이 높은 프레임워크 및 기본 구성 요소입니다)

    • 블랙 박스 (C 확장 시스템과 비교)

    • 실행 속도 (예: Laravel은 많은 것을 로드합니다)

    • 메모리 사용량

디자인 패턴

  • 단일 케이스 패턴(강조)

  • 팩토리 패턴(강조)

  • 관찰자 패턴(강조)

  • 종속성 주입(핵심 사항)

  • 데코레이터 모드

  • 프록시 모드

  • 결합 모드

보안 장

  • SQL 주입

  • XSS 및 CSRF

  • 입력 필터링

  • 쿠키 안전

  • Disabled mysql_ 시스템 기능 mysql_ 系函数

  • 数据库存储用户密码时,应该是怎么做才安全

  • 验证码 Session 问题

  • 安全的 Session ID (让即使拦截后,也无法模拟使用)

  • 目录权限安全

  • 包含本地与远程文件

  • 文件上传 PHP 脚本

  • eval 函数执行脚本

  • disable_functions

  • 데이터베이스에 사용자 비밀번호가 저장될 때 안전하게 보관하려면 어떻게 해야 하나요?

  • 인증 코드 세션 문제

보안 세션 ID(차단 후에도 시뮬레이션할 수 없도록)

  • 디렉터리 권한 보안

  • 로컬 및 원격 파일 포함

  • 파일 업로드 PHP 스크립트

  • eval 함수 실행 스크립트

  • disable_functions 고위험 기능을 끄세요

  • FPM 독립 사용자 및 그룹 각 디렉터리에 대한 특정 권한

  • 해시와 암호화의 차이점 이해하기

고급 기사

  • PHP 배열 기반 구현(HashTable + Linked list)

  • 쓰기 원칙, GC 시점에 복사

  • PHP 프로세스 모델, 프로세스 통신 방법, 프로세스 스레드의 차이점 i 수율의 핵심 원리는 무엇입니까?

  • Pdo 준비 원리

  • Php 7과 PHP 5 Swoole의 차이점은 무엇입니까?

    DOM 노드, 속성
  • 박스 모델
  • CSS 파일, 스타일 태그, 인라인 스타일 속성 우선순위
  • HTML 및 JS 실행 순서(JS 페이지에서 위에서 아래로)
  • JS를 기본적으로 가져옵니다. 배열 연산
  • 유형 판단
  • 이 범위
  • .map() 및 이 특정 사용 시나리오 분석
  • 쿠키 읽기 및 쓰기
  • JQu ery 연산
    • Ajax 요청( 동기식과 비동기식의 차이) 난수는 캐싱을 금지합니다

    • 부트스트랩의 장점은 무엇인가요

    • 도메인 간 요청을 위한 N 솔루션

    • 새로운 기술(이해)

    • ES6
    • 모듈식
  • Packaging

    • 빌드 도구

    • vue, 반응, 웹팩,

    • 프런트 엔드 mvc

    • 최적화

    • 단일 도메인 이름에 대한 동시 브라우저 제한
    • 정적 리소스 캐싱 304(If-Modified-Since 및 Etag 원칙)
    • 여러 개의 작은 아이콘을 병합하고 위치 위치 지정 기술을 사용하여 요청을 줄입니다.
    • 정적 리소스를 단일 요청으로 결합하여 압축합니다

CDN

  • 정적 리소스 지연 로딩 기술, 프리로딩 기술

    🎜🎜🎜keep-alive🎜🎜🎜🎜CSS는 헤드, JS는 테일 최적화(원칙)🎜🎜🎜🎜🎜네트워크 기사🎜 🎜🎜🎜 INT에 대한 IP 주소 🎜
  • 192.168.0.1/16 무슨 뜻인가요?

  • DNS의 주요 기능은 무엇인가요?

  • IPv4와 v6의 차이점

네트워크 프로그래밍

    #🎜 🎜 #
  • TCP 3방향 핸드셰이크 프로세스

  • TCP와 UDP의 차이점, 각각 적용 가능한 시나리오

  • # 🎜🎜# 예 UDP 고가용성을 보장하는 방법(이해)
  • TCP 고정 패킷을 해결하는 방법은 무엇입니까?
  • 심장박동이 필요한 이유는 무엇인가요?
  • 긴 연결이란 무엇인가요?
  • HTTPS는 어떻게 보안을 보장하나요?
  • 스트림과 데이터그램의 차이점
  • 프로세스 간에 통신하는 방법에는 여러 가지가 있습니다. 가장 빠른?
  • fork() 어떻게 될까요? RESTful이란 🎜🎜#삭제 요청한 브라우저에서 호환 가능 삭제 요청
  • #🎜 🎜#

    fork() 会发生什么?

API 篇

  • RESTful 是什么

  • 如何在不支持 DELETE 请求的浏览器上兼容 DELETE 请求

  • 常见 API 的 APP_ID APP_SECRET 主要作用是什么?阐述下流程

  • API 请求如何保证数据不被篡改?

  • JSON 和 JSONP 的区别

  • 数据加密和验签的区别

  • RSA 是什么

  • API 版本兼容怎么处理

  • 限流(木桶、令牌桶)

  • OAuth 2 主要用在哪些场景下

  • JWT

  • PHP 中 json_encode(['key'=>123]); 与 return json_encode([]);Common API의 APP_ID APP_SECRET 주요 기능은 무엇입니까? 프로세스를 설명하세요

API 요청 중에 데이터가 변조되지 않도록 하려면 어떻게 해야 하나요?

  • JSON과 JSONP의 차이점

    • 데이터 암호화와 서명 확인의 차이점

      #🎜 🎜#

      #🎜🎜#RSA란 무엇인가요?(나무 버킷, 토큰 버킷) #🎜🎜##🎜🎜##🎜🎜##🎜🎜#OAuth 2는 주로 어떤 시나리오에서 사용되나요? 🎜🎜##🎜🎜##🎜🎜##🎜🎜# JWT#🎜🎜##🎜🎜##🎜🎜##🎜🎜#PHP 중간 json_encode(['key' =>123]);return json_encode([]); 차이점, 어떤 문제가 발생합니까? 해결 방법 #🎜🎜##🎜🎜##🎜🎜##🎜🎜#보너스 포인트#🎜🎜##🎜🎜##🎜🎜##🎜🎜#공통 언어 기능과 다양한 시나리오에 대한 적용 가능성을 이해합니다. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#PHP VS Golang#🎜🎜#
    • PHP VS Python

    • PHP VS JAVA

  • PHP 확장 개발 이해

  • C에 능숙

면책조항

이 정보는 특정 회사에 국한되지 않습니다. 귀하에 관한 정보 우리는 영향에 대해서는 책임을 지지 않으니 주의하시기 바랍니다.

행운을 빕니다

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

php 전문가 공유: PHP 코드 작성 사양, 매우 포괄적인 요약

PHP 객체 지향 설계(SOLID)의 5가지 원칙 요약

위 내용은 PHP 인터뷰 지식 포인트 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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