PHP 면접 질문과 답변의 최신 요약

藏色散人
풀어 주다: 2023-04-09 20:56:01
앞으로
3109명이 탐색했습니다.

관련 추천: "
PHP 면접 문제 최신 요약

" "개념 질문 PHP 면접 문제 최신 요약"

1. ) 및 print_r() echo() 및 print()는 PHP 문입니다. print_r()은 함수입니다.

print()는 단순 유형 변수(예: int, string)의 값만 인쇄할 수 있습니다. 반환 값이 있습니다.
  • print_r()은 복잡한 유형 변수(예: 배열, 객체)의 값을 인쇄할 수 있습니다.
  • echo는 반환 값 없이 하나 이상의 문자열을 출력합니다.

2 문자열에서 작은따옴표와 큰따옴표의 차이점

작은따옴표는 변수를 해석할 수 없지만 큰따옴표는 해석할 수 있습니다.
  • 문자는 작은따옴표로 이스케이프할 수 없지만 큰따옴표로 문자를 이스케이프할 수 있습니다.

3.error_reporting 함수 error_reporting()은 PHP의 오류 수준을 설정하고 현재 수준을 반환합니다.

4. SESSION과 COOKIE의 차이점

    세션은 서버측에 저장되고, 쿠키는 클라이언트측에 저장됩니다.
  • 세션은 비교적 안전하지만 쿠키는 특정 수단으로 수정될 수 있으므로 안전하지 않습니다.
  • 세션 ID에 따라 세션의 동작이 달라지며, 세션 ID는 쿠키에 저장됩니다. 쿠키가 비활성화되면 세션이 무효화됩니다. (그러나 URL에 세션 ID를 전달하는 등 다른 방법으로 달성할 수 있습니다.)
  • 세션은 파일, 데이터베이스 또는 메모리에 배치될 수 있습니다. 기본적으로 서버의 파일에 저장됩니다.

5. get과 post의 차이점은 get이 명시적이며, URL에서 데이터를 볼 수 있고, 전송되는 데이터의 양이 적고,

post가 암시적이라는 것입니다. 전송되는 데이터의 양이 많아지고 안전성이 높아집니다.

6. 다음 코드의 실행 결과를 작성하세요.
<?php
    $a = 12;
    $b = 012;
    $c = 0x12;
    echo $a,"\n",$b,"\n",$c;
로그인 후 복사
분석: 8진수 12는 2진수 001010으로 변환되고, 2진수는 10진수 10으로 변환됩니다. 16진수 12는 2진수 00010010으로 변환되고, 2진수는 10진수 18로 변환됩니다. 따라서 결과는 12 10 18입니다.

7. URL에서 중국어 문자가 깨지는 문제를 해결하세요

를 사용하여 중국어를 인코딩하세요.

urlencode()

8. GB2312 형식 문자열을 UTF-8
iconv(&#39;GB2312&#39;,&#39;UTF-8&#39;,&#39;悄悄是别离的笙箫&#39;);
로그인 후 복사

9로 변환합니다. 문자열을 배열
$str = "hello word;From-ajiang";str_split($str, 3);
explode(";", $str);preg_split("/-/", $str);
로그인 후 복사

10으로 변환합니다. 문자열 검색 기능
$str = &#39;linux and php&#39;;
str_replace(&#39;linux&#39;, &#39;windows&#39;, $str);
preg_replace(&#39;/linux|php/&#39;, &#39;js&#39;, $str);
로그인 후 복사

12. redis를 사용하면 어떤 이점이 있나요

빠른 속도: HashMap과 마찬가지로 데이터가 메모리에 저장되기 때문에 HashMap의 장점은 검색 및 연산의 시간 복잡도가 O(1)이라는 것입니다.

    문자열, 목록, 집합, 정렬된 집합, 해시 등 다양한 데이터 유형을 지원합니다.
  • 트랜잭션 지원: 여러 명령을 동시에 실행할 수 있습니다. 실패는 롤백되지 않고 실행이 계속됩니다.
  • 풍부한 기능: 캐싱, 메시징, 키로 만료 시간 설정에 사용할 수 있으며 만료 후 자동으로 삭제됩니다. memcached의 값은 동일합니다. 이는 단순한 문자열이며 이를 대체하는 Redis는 더 풍부한 데이터 유형을 지원합니다.
  • redis는 memcached보다 훨씬 빠릅니다.
  • redis는 데이터를 유지할 수 있습니다

    14. 명령줄에서 PHP 스크립트를 실행하고 동시에 매개변수를 전달합니다.
  • 먼저 PHP 설치 디렉터리를 입력하고 -f 매개변수는 PHP 파일을 지정합니다. 실행되며, 매개변수는 직접 연결됩니다. 파일 이름 뒤에는 여러 개의 매개변수가 공백으로 구분됩니다. -r은 PHP 코드를 직접 실행한다는 의미입니다.

  • 인수가 전달되면 스크립트는 먼저 $argc를 확인하여 인수 수가 요구 사항을 충족하는지 확인합니다. 그런 다음 각 인수는 $argv에서 추출되어 표준 출력으로 인쇄됩니다.
  • preg_match("/php/i", "PHP is the web scripting language of choice.");
    $userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
    preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
    strpos("I love php, I love php too!","php");   // 首次匹配的位置
    strrpos("I love php, I love php too!","php");  // 最后匹配的位置
    로그인 후 복사

    15.crontab 예약 작업 구문
  • 분, 시간, 일, 월, 주 단위로 실행되는 프로그램
  • 案例: 一个备份程序mybackup,需要在周一到周五下午1点和晚上8点运行,命令如下:

     0 13,20 * * 1,2,3,4,5 mybackup // 或 0 13,20 * * 1-5 mybackup
    로그인 후 복사

    16. 键入网址再按下回车

    • 浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;

    • 浏览器用 TCP 的三次握手与服务器建立连接;

    • 浏览器向服务器发送拼好的报文;

    • 服务器收到报文后处理请求,同样拼好报文再发给浏览器;

    • 浏览器解析报文,渲染输出页面。

    17. php 数组相关的函数

    array_combine()-----通过合并两个数组来创建一个新数组
    array_chunk()-------将一个数组分割成多个
    array_merge()-------把两个或多个数组合并成一个数组
    array_slice()-------在数组中根据条件取出一段值
    array_diff()--------返回两个数组的差集数组
    array_intersect()---计算数组的交集
    array_search()------在数组中搜索给定的值
    array_splice()------移除数组的一部分且替代它
    array_key_exists()--判断某个数组中是否存在指定的key
    array_flip()--------交换数组中的键和值
    array_reverse()-----将原数组中的元素顺序翻转,创建新的数组并返回
    array_unique()------移除数组中重复的值
    range()-------------创建并返回一个包含指定范围的元素的数组
    로그인 후 복사

    18. PHP 数组排序

    sort()   - 以升序对数组排序
    rsort()  - 以降序对数组排序
    asort()  - 根据值,以升序对关联数组进行排序
    ksort()  - 根据键,以升序对关联数组进行排序
    arsort() - 根据值,以降序对关联数组进行排序
    krsort() - 根据键,以降序对关联数组进行排序
    로그인 후 복사

    19. $_SERVER

    // http://www.test.com/testA/test?name=aj&age=23
    "HTTP_HOST" => "www.test.com"
    "SERVER_NAME" => "www.test.com"
    "SERVER_PORT" => "80"               // 服务器端口
    "SERVER_ADDR" => "127.0.0.1"        // 服务器IP
    "REMOTE_PORT" => "13675"            // 客户端IP
    "REMOTE_ADDR" => "127.0.0.1"        // 客户端口
    "REQUEST_URI" => "/testA/test?name=aj&age=23"          // 参数
    "SCRIPT_NAME" => "/index.php"
    "QUERY_STRING" => "s=//testA/test&name=aj&age=23"
    "SCRIPT_FILENAME" => "F:/projectName/public/index.php" // 当前执行脚本路径
    로그인 후 복사

    20. 魔术方法

    __construct(),类的构造函数
    __destruct(),类的析构函数
    
    __call(),在对象中调用一个不可访问方法时调用
    __callStatic(),用静态方式中调用一个不可访问方法时调用
    
    __get(),获得一个不存在的类成员变量时调用
    __set(),设置一个不存在的类成员变量时调用
    
    __isset(),当对不可访问属性调用isset()或empty()时调用
    __unset(),当对不可访问属性调用unset()时被调用。
    
    __sleep(),执行serialize()时,先会调用这个函数
    __wakeup(),执行unserialize()时,先会调用这个函数
    __toString(),类被当成字符串时的回应方法
    
    __invoke(),调用函数的方式调用一个对象时的回应方法
    __set_state(),调用var_export()导出类时,此静态方法会被调用。
    
    __clone(),当对象复制完成时调用
    __autoload(),尝试加载未定义的类
    __debugInfo(),打印所需调试信息
    로그인 후 복사

    21. PHP 的基本变量类型

    • 四种标量类型:boolean (布尔型)、integer (整型)、float (浮点型, 也称作 double)、string (字符串)
    • 两种复合类型:array (数组)、object (对象)
    • 两种特殊类型:resource(资源)、NULL(NULL)


    本文章首发在 LearnKu.com 网站上。

    위 내용은 PHP 면접 질문과 답변의 최신 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿