この記事では主に 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の基礎
Linux1:基础sql语句书写(一般让写关联和子查询语句) 2:索引的创建,优缺点,最左原则 3:存储引擎,常用的几个,优缺点,差别,原理(面试必出)4:sql注入的处理方法 5:mysql处理函数(PHP中封装的) 6:PDO的使用方法,为什么使用 7:mysql的优化,表拆分等 8:事务处理,sql语句的处理效率等 9:数据表字段的类型,同类型间的区别,改如何选取,int(10)与int(11)的区别等。 10:数据库索引使用的那种数据结构,画出数据结构NoSql
1:常用命令的使用,vim编辑器的使用。 2:进程,cpu等信息的查看命令。 3:文件内查看命令(主要涉及统计信息)。 4:Shell的使用,命令操作。 5:awk的用法 6:shell杀掉所有的php-fpm进程開発環境
1:Redis的应用场景,结合微博业务说出他的具体应用。 2:Redis与MC支持数据的不同点,两者都支持哪些数据结构的存储,写越多越好。 3:Redis持久化存储的原理,与Mysql的应用区别。怎样保持持久化数据与内存数据同步的关系(Redis同步机制) 4:Redis与MC在并发状态下的性能比较。 5:MC的内存管理机制,当一个数据需要存储的时候怎样分配内存空间 6:Redis的内存管理机制,与MC有哪些不同点。バージョン管理
1:PHP7中的新特性与废弃的特性 2:为什么要使用PHP7,PHP7快在哪里 3:PHP7中对异常和错误的理解以下はみんなのものです 付属A誰もが覚えておくのに役立つ知識ポイントのマップ:
6. 複数のスレッドが同時にファイルを読み書きする問題を解決する関数を作成します。
7. Cookie セッション使用プランの無効化、セッション有効期限の設定
8. JSON 形式のデータの特徴とは何ですか
9. PHP のマジックメソッドと魔法の定数
11. PHP でクライアントの IP アドレスを取得する方法
12. フォルダー内のすべてのファイルとフォルダーを走査できる関数を作成します。
13. mail.log というドキュメントがあり、内容は「n」と改行で区切られた多数のメールアドレスです。 sina.com のアドレスを選択します。
14. tp は部分的にキャッシュされますか?
15. strlen() と mb_strlen の違い
16. 標準 URL から拡張子を効率的に抽出する関数を作成します。可能です
17. php.ini で安全な MOD をオフにすることで影響を受けるのはどれですか?
18. ジョセフリングの問題
19. Isset()、empty()、is_nullの違い
21. MVCの利点と欠点
22.セッションとクッキーの違いと違い(動作の仕組み)、セッション共有問題の解決策23. 正規表現24. ヘッダー情報を取得する関数を書くMySQL部分 1. select * from table where (ID = 10) ) or ( ID = 32) or (ID = 22) 10、32、22の順に結果を取得しますか? Linux 部分1. Core ファイルとは何ですか?何に使用されますか?
2. ファイルマッピング以外にメモリを共有する方法はありますか?
3. 以下の 10 個のシェルコマンドの目的を説明してください
4. Linux ファイルの属性は何ですか? (合計10個)
機能: キープアライブ: クライアントからサーバーへの後続のリクエストが発生したときに、キープアライブを維持します。 -アライブ機能により、接続を確立または再確立する必要がなくなります。 Webサーバーは基本的にHTTPキープアライブをサポートしています。
短所: この機能は、多くの場合、静的コンテンツを提供する Web サイトに役立ちます。ただし、負荷の高いサイトの場合、クライアントの接続を開いたままにすることには一定の利点がありますが、解放されたはずのリソースが処理の一時停止中に依然として占有されるため、パフォーマンスにも影響します。 Web サーバーとアプリケーション サーバーが同じマシン上で実行されている場合、Keep-Alive 機能はリソース使用率に特に大きな影響を与えます。
解決策: キープアライブ: タイムアウト = 5、最大 = 100
タイムアウト: 有効期限は 5 秒 (httpd.conf のパラメーター: KeepAliveTimeout に対応)、最大リクエスト数は 100 件で、接続は強制されます。切断されること。つまり、タイムアウト期間内に新しい接続があった場合、max は 0 になるまで自動的に 1 ずつ減少し、強制的に切断されます。 2. 一般的な PHP 配列関数とは何ですか? (array_merge、in_array の役割)
PHP の array_ で始まる配列関数とは何ですか? およびその使用方法 (少なくとも 6 つ)
1.
1:git的使用命令,例如:写出版本回退命令。 2:git与svn的区别。 3:如何进行多分支开发,包括多人开发协同,分段测试,上线。2. 配列内部ポインタ制御
1 list(); //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组2 each(); //返回数组当前元素的键值对,并将指针移动到下一个元素位置3 while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }
4、配列とスタック、キュー
1 current(); //读取指针位置的内容2 key(); //读取当前指针指向内容的索引值3 next(); //将数组中的内部指针指向下一单元4 prev(); //将数组内部指针倒回一位5 end(); //将数组内部指针指向最后一个元素6 reset(); //将目前指针指向第一个索引位置
6. 配列の並べ替え
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); // 删除数组中重复的值
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)
4、不用新变量直接交换现有两个变量的值
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="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/054/025/277f1538a44b804d1a78c0539aac6687-0.gif?x-oss-process=image/resize,p_40" class="lazy" 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 中国語 Web サイトの他の関連記事を参照してください。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール
