PHP 面接の質問と回答の最新の要約

藏色散人
リリース: 2023-04-09 20:56:01
転載
3105 人が閲覧しました

#この記事は、PHPインタビューの質問と回答の最新の要約を紹介します。特定の参照値があります。困っている友人はそれを参照できます。

関連する推奨事項: 「PHP 面接の質問に対する応募の質問の最新概要 」「概念的な質問に対する PHP 面接の質問の最新概要

1. echo()、print()、print_r()の違い

echo() と print() は PHP ステートメントであり、print_r() は関数

  • print() は、単純型変数 (int、string など) の値を出力することしかできず、戻り値を持ちます。
  • print_r() は複合型変数 (配列、オブジェクトなど) の値を出力できます。
  • echo は 1 つ以上の文字列を出力します。戻り値はありません。

2. 文字列内の単一引用符と二重引用符の違い

  • 単一引用符は変数を解釈できませんが、二重引用符は変数を解釈できます。
  • 一重引用符で文字をエスケープすることはできませんが、二重引用符内で文字をエスケープすることはできます。

3. Error_reporting 関数

error_reporting() は、PHP のエラー レベルを設定し、現在のレベルを返します。

4. SESSION と COOKIE の違い

  • セッションはサーバー側に保存され、クッキーはクライアント側に保存されます。

  • セッションは比較的安全ですが、Cookie は特定の方法で変更される可能性があるため、安全ではありません。

  • セッションの実行はセッション ID に依存し、セッション ID は Cookie に保存されます。 Cookie が無効になっている場合、セッションは無効になります。 (ただし、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);
ログイン後にコピー

11. 文字列検索関数

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");  // 最后匹配的位置
ログイン後にコピー

12. redisの使用とは利点

  • 高速: データはメモリに保存されるため、HashMap と同様に、HashMap の利点は、検索と操作の時間計算量が O(1) であることです。

  • 豊富なデータ型のサポート: 文字列、リスト、セット、ソートされたセット、ハッシュをサポートします。

  • サポート トランザクション: 複数のコマンドを一度に実行できます。失敗してもロールバックされず、実行は継続されます。

  • 豊富な機能: キャッシュ、メッセージング、キーによる有効期限の設定に使用でき、有効期限が切れると自動的に削除されます

#13. memcached と比較した redis の利点は何ですか

  • memcached のすべての値は単純な文字列であり、redis はその代替として、より豊富なデータ型をサポートします。

  • redis は memcached よりもはるかに高速です。

  • redis はデータを永続化できます

14. コマンド ラインで PHP スクリプトを実行し、パラメータを渡します

まず、PHP インストール ディレクトリに移動します。-f パラメータは、実行する PHP ファイルを指定します。パラメータはファイル名の後に直接接続されます。複数のパラメータはスペースで区切られます。 -r は、php コードを直接実行することを意味します。

引数が渡された場合、スクリプトはまず $argc をチェックして、引数の数が要件を満たしていることを確認します。次に、各引数が $argv から抽出され、標準出力に出力されます。

$ php -f d:/wamp/test.php [参数1 参数2 ...] $ php -r phpinfo();
ログイン後にコピー

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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート