이 기사는 주로 PHP 인터뷰 요약을 공유하므로 도움이 되길 바랍니다.
관련 추천: "2019 PHP 면접 질문 요약(컬렉션) "
1:变量的传值与引用。 2:变量的类型转换和判断类型方法。 3:php运算符优先级,一般是写出运算符的运算结果。 4:PHP中函数传参,闭包,判断输出的echo,print是不是函数等。 5:PHP数组,数组函数,数组遍历,预定义数组(面试必出)。 6:PHP面向对象,魔术方法,封装、继承、多态。设计模式,包括(单利、工厂、迭代器、装饰、命令、策略)。 7:正则表达式,每个标号含义,邮箱、网址、标签匹配,正则函数(面试必出)。 8:PHP异常处理(级别,错误日志,控制错误输出)(面试必出)。 9:PHP时间函数,日期计算函数。 10:文件系统,记录日志、目录、文件的遍历、上传、多方法得到文件扩展名、文件引用方式、引用函数区别。(面试必出)。 11:会话控制,主要说原理。session与cookie在分布式应用中出现问题的解决方案。 12:PHP模板引擎,常用模板引擎特点,MVC好与不好的地方。 13:PHP安全处理,过滤函数。 14:XML的使用。 15:PHP字符串的处理,包括转义(安全)、编码、截取、定位、与数组间的转换、处理函数等。(面试必出)。 16:Socket编程,各种协议,head头,curl参数含义。 17:网络状态码含义,常用(204,304, 404, 504,502)。 18:Apache配置文件,PHP配置文件,各个含义字段的含义。 19:网络各种攻击的名词含义(SQL攻击、XSS、CSRF、DDos),防止措施。 20:url的处理函数,得到url指定的部分。
Mysql Basics
1:基础sql语句书写(一般让写关联和子查询语句) 2:索引的创建,优缺点,最左原则 3:存储引擎,常用的几个,优缺点,差别,原理(面试必出)4:sql注入的处理方法 5:mysql处理函数(PHP中封装的) 6:PDO的使用方法,为什么使用 7:mysql的优化,表拆分等 8:事务处理,sql语句的处理效率等 9:数据表字段的类型,同类型间的区别,改如何选取,int(10)与int(11)的区别等。 10:数据库索引使用的那种数据结构,画出数据结构
Linux
1:常用命令的使用,vim编辑器的使用。 2:进程,cpu等信息的查看命令。 3:文件内查看命令(主要涉及统计信息)。 4:Shell的使用,命令操作。 5:awk的用法 6:shell杀掉所有的php-fpm进程
NoSql
1:Redis的应用场景,结合微博业务说出他的具体应用。 2:Redis与MC支持数据的不同点,两者都支持哪些数据结构的存储,写越多越好。 3:Redis持久化存储的原理,与Mysql的应用区别。怎样保持持久化数据与内存数据同步的关系(Redis同步机制) 4:Redis与MC在并发状态下的性能比较。 5:MC的内存管理机制,当一个数据需要存储的时候怎样分配内存空间 6:Redis的内存管理机制,与MC有哪些不同点。
개발 환경
1:PHP7中的新特性与废弃的特性 2:为什么要使用PHP7,PHP7快在哪里 3:PHP7中对异常和错误的理解
버전 관리
1:git的使用命令,例如:写出版本回退命令。 2:git与svn的区别。 3:如何进行多分支开发,包括多人开发协同,分段测试,上线。
다음은 모두를 위한 내용입니다. 첨부 A 모두가 기억하는 데 도움이 되는 지식 포인트:
PHP 부분
1. HTTP Keep-Alive의 역할
2. 일반적인 PHP 배열 기능은 무엇인가요?(array_merge, in_array의 역할)
3 . PHP
4의 여러 출력 함수 echo, print(), print_r(), var_dump()의 차이점은 새로운 변수 없이 두 개의 기존 변수 값을 직접 교환하는 것입니다
5.
6. 여러 스레드가 동시에 파일을 읽고 쓰는 문제를 해결하는 함수를 작성하세요. 7. 쿠키 세션 사용 계획 비활성화, 세션 만료 방법 설정, 해당 기능 8. json 형식 데이터의 특징은 무엇입니까 9. 파일 콘텐츠를 가져오는 PHP 방법, 해당 기능 10. 매직 상수11. PHP12에서 클라이언트의 IP 주소를 얻는 방법. 폴더의 모든 파일과 폴더를 탐색할 수 있는 함수를 작성하세요. 13. mail.log라는 문서가 있습니다. 내용은 'n'과 줄 바꿈으로 구분된 여러 이메일 주소입니다. sina.com의 주소를 선택하세요. 14. PHP 캐싱 기술은 무엇입니까? 15. strlen()과 mb_strlen의 기능 및 차이점 16. 가능 17. php.ini에서 안전 모드를 끄면 어떤 기능과 매개변수가 영향을 받나요? 18. Joseph 링 문제19. Isset(), empty() 및 is_null의 차이점20. MVC의 장점과 단점22. 세션과 쿠키 사이의 차이(실행 메커니즘), 세션 공유 문제 해결23. 정규식24. 헤더 정보를 가져오는 함수 작성MySQL 부분 1. 테이블에서 *를 선택합니다(ID = 10). ) 또는 ( ID = 32) 또는 (ID = 22) 10, 32, 22 순서로 결과를 검색할까요? Linux 부분1. Core 파일은 무엇이며 어떤 용도로 사용되나요?
2. 파일 매핑 외에 메모리를 공유하는 방법이 있나요?
기능: Keep-Alive: 클라이언트에서 서버로의 연결이 계속 유효하도록 합니다. - 살아 있는 기능을 사용하면 연결을 설정하거나 재설정할 필요가 없습니다. 웹 서버는 기본적으로 HTTP Keep-Alive를 지원합니다.
단점: 이 기능은 정적 콘텐츠를 제공하는 웹사이트에 유용한 경우가 많습니다. 그러나 로드가 많은 웹 사이트의 경우 클라이언트에 대한 연결을 열어두면 특정 이점이 있지만, 처리가 일시 중지되는 동안 해제될 수 있었던 리소스가 여전히 점유되어 있기 때문에 성능에도 영향을 미칩니다. 웹 서버와 애플리케이션 서버가 동일한 시스템에서 실행 중인 경우 Keep-Alive 기능은 리소스 활용도에 특히 큰 영향을 미칩니다.
timeout: 만료 시간은 5초(httpd.conf의 매개변수에 해당: KeepAliveTimeout), max는 최대 100개의 요청이며 연결이 강제됩니다. 연결이 끊어집니다. 즉, 타임아웃 기간 내에 새로운 연결이 생기면 max는 0이 될 때까지 자동으로 1씩 감소하고 강제로 연결이 끊어진다.
2. 일반적인 PHP 배열 함수는 무엇인가요?(array_merge, in_array의 역할)
PHP에서 array_로 시작하는 배열 함수는 무엇이며 어떻게 사용하나요?(최소 6개)
1 list(); //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组2 each(); //返回数组当前元素的键值对,并将指针移动到下一个元素位置3 while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }
2. 배열 내부 포인터 제어
1 current(); //读取指针位置的内容2 key(); //读取当前指针指向内容的索引值3 next(); //将数组中的内部指针指向下一单元4 prev(); //将数组内部指针倒回一位5 end(); //将数组内部指针指向最后一个元素6 reset(); //将目前指针指向第一个索引位置
1 array_values($arr); //获得数组的值2 array_keys($arr); //获得数组的键名3 array_flip($arr); //数组中的值与键名互换(如果有重复前面的会被后面的覆盖)4 array_search('PHP',$arr); //检索给定的值,加true则是严格类型检查5 array_reverse($arr); //将数组中的元素翻转(前后顺序)6 in_array("apple", $arr); //在数组中检索apple7 array_key_exists("apple", $arr); // 检索给定的键名是否存在数组中8 array_count_values($arr); // 统计数组中所有值出现的次数 9 array_unique($arr); // 删除数组中重复的值
4. 배열 분할 및 채우기
1 array_filter(); //使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中2 array_walk(); //回调函数处理数组,自定义函数要有两个参数,本函数第三个参数可以作为回调第三个参数返回3 array_map(); //可以处理多个数组,每个数组的长度应该相同,传入数组的个数和回调函数参数个数应该一致
4 , 배열 및 스택, 큐
1 array_slice($arr, 0, 3); //将数组中的一段取出,此函数忽略键名(数组的分段)2 array_splice($arr, 0, 3,array("black","maroon")); //将数组中的一段取出,返回的序列从原数组中删除3 array_chunk($arr, 3, TRUE); //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)
1 array_push($arr, "apple", "pear"); //将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数2 array_pop($arr); // 将数组栈的最后一个元素弹出(出栈)3 array_shift($arr); //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变)4 array_unshift($arr,"a",array(1,2)); //在数组的开头插入一个或多个元素
1 array_sum($arr); //对数组内部的所有元素做求和运算(数组元素的求和)2 array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面)3 4 array_diff($arr1, $arr2); //返回差集结果数组 array_diff_assoc($arr1, $arr2, $arr3); //返回差集结果数组,键名也做比较5 array_intersect($arr1, $arr2); //返回交集结果数组 array_intersect_assoc($arr1, $arr2); //返回交集结果数组,键名也做比较
八、其他的数组函数
1 array_unique($arr); //移除数组中重复的值,新的数组中会保留原始的键名2 shuffle($arr); // 将数组的顺序打乱
3、PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别
1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。
2:print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。
3:print_r:是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值
4:printf:是函数,把文字格式化以后输出(参看C语言)
5:sprintf:是函数,跟printf相似,但不打印,而是返回格式化后的文字(该函数把格式化的字符串写写入一个变量中,而不是输出来),其 他的与printf一样。
例如:
1 $str = "Hello"; 2 $number = 123; 3 $txt = sprintf("%s world. Day number %u",$str,$number);4 //输出: Hello world. Day number 123
6:var_dump():函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
可以通过function_exists('函数名称')进行测试
1 var_dump(function_exists('print')); //bool(false)2 3 var_dump(function_exists('echo')); //bool(false)4 5 var_dump(function_exists('print_r')); //bool(true)
1 1: 3 list($a, $b) = array($b, $a); 4 2: 5 $a = $a . $b; 5 $b = strlen( $b ); 6 $b = substr( $a, 0, (strlen($a) – $b ) ); 7 $a = substr( $a, strlen($b) ); 8 9 3:(必须用一个两个字符串都都不能出现的字符做为分隔符)10 $a = $b.','.$a ;11 $a = explode(',', $a);12 $b = $a[1];13 $a = $a[0];14 15 4:这个是当两个数都是数字的时候:16 $a = $a + $b;17 $b = $a – $b;18 $a = $a – $b;19 20 5:借助数组21 $a = array($a,$b);22 $b = $a[0];23 $a = $a[1];
5、heredoc
Heredoc在正规的PHP文档中和技术书籍中一般没有详细讲述。他是一种Perl风格的字符串输出技术。使用heredoc技术可以实现界面与代码的准分离,比如phpwind模板。
heredoc的语法是用”
规则如下:
1、以
2、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符 . 或 , 来拼接,比如:
1 $a=2;2 $b= <p>3、heredoc常用在输出包含大量HTML语法文档的时候。他要比传统的echo输出精炼很多,如下所示:</p><p><img src="https://img.php.cn/upload/article/000/054/025/277f1538a44b804d1a78c0539aac6687-0.gif" alt="PHP 인터뷰 요약 공유"></p><pre class="brush:php;toolbar:false"> 1 function getHtml() 2 { 3 echo ""; 4 echo "<title>Title</title>"; 5 echo "Content"; 6 echo "; 7 } 8 9 function getHtml()10 {11 echo 13 <title>Title</title>14 Content15
위 내용은 PHP 인터뷰 요약 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!