今日は面接での質問をいくつか集めました。お役に立てれば幸いです。ありがとうございます!
推奨される PHP 関連のビデオ チュートリアル: https://www.php.cn/course/list/29/type/2.html
1。 PHP 言語の主な利点の 1 つは、クロスプラットフォームであることです。クロスプラットフォームとは何ですか?
PHP の最適な実行環境は、Apache MySQL PHP です。この実行環境は、次の環境で使用できます。さまざまなオペレーティング システム (Windows、Linux など) に対応しており、オペレーティング システムによって制限されないため、クロスプラットフォーム
2 と呼ばれます。 WEB 開発? 違いは何ですか? Baidu はどの方法を使用しますか?
Get と post の 2 つの方法
違い:
1. Get は、サーバーにデータを送信し、ポストはサーバーにデータを送信します。
2. Get は URL の Visible の値を渡しますが、post は URL に表示されません
3. Get によって渡される値は通常、次の範囲内にあります2KB、postで渡される値のサイズはphp.ini
4で設定可能 getのセキュリティは低くなく、postのセキュリティは高いですが実行効率はPost
より高い推奨事項:
1. get タイプは Post タイプよりも安全性が低く、機密情報が含まれています。Post データ送信タイプを使用することをお勧めします。
2. これが推奨されます。データ クエリには Get メソッドを使用します。データの追加、変更、削除には Post メソッドを使用することをお勧めします。
Baidu で使用される get メソッドは、URL
3 で確認できます。 PHP
#フレームワークのフレームワーク、テンプレート エンジン、システムなどを理解する: zendframe、CI、Yii など、多くのフレームワークがあります。私たちが学んだのは thinkphpテンプレートエンジン: たくさんあります、教科書にも載っています。私たちが学んだことは賢いです システム: たくさんあります、例: Kangsheng の製品 (udome、
supesite##) #、discuzX
など)、Empire System、DEDE
(Dreamweaver)、ecshop
など
DIV CSS Web ページ レイアウト、JavaScript、jQuery フレームワーク、Photoshop 画像処理に精通しています
5. AJAX の利点は何ですか?ajax は、JavaScript または JQuery フレームワークを通じて実装して部分更新を実現できる非同期送信テクノロジです。これにより、サーバーへの負荷が軽減され、ユーザー エクスペリエンスが向上します
6. プログラムにとってセキュリティは非常に重要です。開発中に注意すべきセキュリティの仕組みを教えてください。① リモート送信の防止、② SQL インジェクションとフィルタの防止特別なコード; ③登録機のフラッディングを防止し、認証コードを使用する;
7. プログラム開発において、プログラムの動作効率を向上させるにはどうすればよいですか?①SQL 文とクエリ文を最適化する select * は使わず、どのフィールドをチェックするかに努める; サブクエリを減らしてテーブル接続で置き換えられる; ファジィクエリを減らす; ② データテーブルにインデックスを作成する; ③ キャッシュを生成するプログラムで頻繁に使用されるデータ用;
8. PHP は他のデータベースでも使用できますか?PHP は MYSQL データベースと組み合わせるのに最適です。もちろん、PHP は使用できます。 PHP には MSSQL を操作するための予約関数があり、それがオンになっている限り使用できます。構造はプログラミングでよく使用されます。MVC とはどの 3 つの層を指しますか?また、その利点は何ですか?
MVC の 3 つの層とは、ビジネス モデル、ビュー、コントローラーを指します。コントローラー層は、モデルを使用してデータを処理し、そのデータをビュー層にマッピングして表示する利点は、①コードの再利用性を実現し、コードの冗長性を回避できる、②M と V でコード分離を実現し、同じプログラムで異なる表現を使用できることです。10. json データ形式について理解していますか?
JSON(JavaScript Object Notation
) は軽量のデータ交換形式です。 . json データ形式は固定されており、複数の言語でのデータ送信に使用できます PHP で json 形式を処理する関数は
json_decode(
string $json
[, bool $assoc ] ) は、JSON 形式の文字列を受け入れ、それを PHP 変数に変換します。パラメーター json は、デコードされる
json string 形式の文字列です。
assocこのパラメータが
TRUE の場合、
object;
Json_encode# の代わりに
array
が返されます。 ##: PHP 変数を json 形式に変換します
① echo と print はどちらも出力を行うことができます。はい、echo は関数ではなく戻り値がありませんが、print は戻り値のある関数であるため、相対的に言えば、単に echo を出力する方が高速です。print_r は通常、変数に関する情報を出力するために使用されます。デバッグ中。
② print は文字列を出力します ③ print_r は配列オブジェクトなどの複合型を出力します
12. SESSION と COOKIE の違いは何ですか?①保存場所: セッションはサーバーに保存され、Cookie はブラウザに保存されます
##② セキュリティ: セッションのセキュリティは Cookie よりも高いです##③セッションは「セッション」ですサービス」を使用する場合は、サービスをオンにする必要があります。Cookie をオンにする必要はありません。直接使用できます。
13. PHP で配列を処理するための一般的な関数は何ですか? (関数の「パラメータ」と「戻り値」に注目してください)①array() は配列を作成します; ②count() は配列内の要素の数を返します; ③array_push() は 1 つ以上の要素を配列の末尾に挿入します (プッシュ); ④array_column() は単一列の値を返します入力配列内で;⑤array_combine()は2つの配列を結合して新しい配列を作成します;⑥array_reverse()は配列を逆順に返します;⑦array_unique()は配列内の重複した値を削除します;⑧in_array()は指定された値が配列に存在するかどうかを確認しますarray;
14. PHP で文字列を処理するためによく使用される関数 (関数の「パラメーター」と「戻り値」に注目してください)
①trim()文字列の文字と他の文字の両側の空白を削除します;
②substr_replace() 文字列の一部を別の文字列に置き換えます;
③substr_count() は部分文字列が出現する回数をカウントします文字列;
④substr() は文字列の一部を返します;
⑤strto lower() は文字列を小文字に変換します;
⑥strtoupper() は文字列を大文字に変換します;
⑦strtr() 文字列内の特定の文字を変換;
⑧strrchr() 別の文字列内で最後の文字列を検索;
⑨strstr() 最後の文字列を検索文字列の別の文字での文字列の最初の出現 (大文字と小文字を区別)、strrev() は文字列を反転、strlen() は文字列の長さを返し、str_replace() は文字列内の一部の文字を置き換えます (大文字と小文字を区別)。 print( ) 1 つ以上の文字列を出力します。explode() は文字列を配列に分割します。is_string() は変数が文字列かどうかを検出します。strip_tags() は文字列から HTML タグを削除します。mb_substr() は中国語と英語を切り取るために使用されます。関数
15. PHP で時間を処理するために一般的に使用される関数? (関数の「パラメーター」と「戻り値」に注目)
#date_default_timezone_get ()
デフォルトのタイムゾーンに戻ります。
date_default_timezone_set()
デフォルトのタイムゾーンを設定します。
date()
現地時間/日付をフォーマットします。
getdate()
日付/時刻情報を返します。
gettimeofday()
現在の時刻情報を返します。
microtime()
現在の時刻のマイクロ秒数を返します。
mktime()
日付のUnixタイムスタンプを返します。
strtotime()
英語のテキストの日付または時刻の記述を Unix タイムスタンプに解析します。
time()
現在時刻の Unix タイムスタンプを返します。
16. PHP がデータベースを処理するために一般的に使用される関数は何ですか? (関数の「パラメーター」と「戻り値」に焦点を当てます)
を参照してください。 PHP マニュアルをよく読んでください。この項目は非常に重要です。
17. PHP でファイルを操作するためによく使用される関数 (関数の「パラメーター」と「戻り値」に注目)
①ファイルを開く;②ファイルを削除;③ファイルを読み取る;④ファイルを書き込む;⑤ファイルを変更する;⑥ファイルを閉じる;⑦ファイルを作成するなど この項目は非常に重要です。キャッシュや静的ファイルが動作している場合は、PHP マニュアルを参照してよく読んでください。
18. ディレクトリ (フォルダー) を操作するためによく使用される PHP の関数 (「パラメータ」と「」に注目)関数の戻り値)
# ①ディレクトリを開く、②ディレクトリを削除、③ディレクトリを読み取る、④ディレクトリを作成、⑤ディレクトリを変更、⑥ディレクトリを閉じるなどの項目です。非常に重要です。仕事でアップロードされたファイルのディレクトリを作成または削除したり、キャッシュされたページや静的ページのディレクトリを作成または削除したりするためによく使用されます。PHP マニュアルを参照して、慎重に確認してください19。 MVC とは何ですか?それらの間の関係は何ですか?
回答: MVC は開発モデルであり、主に 3 つの部分に分かれています: モデルである m (モデル) は、データの操作; v (ビュー) はビューであり、フロントエンドとバックエンドの表示を担当します; c (コントローラー) はコントローラーであり、ビジネス ロジックを担当します20。 oop とは何ですか?
回答: oop はオブジェクト指向プログラミングです。オブジェクト指向プログラミングは、コンピューター プログラミング アーキテクチャです。OOP の基本原理は、コンピューター プログラムが単一のコンポーネントで構成されていることです。サブルーチンによって使用されるユニットまたはオブジェクトの構成#21. OOP には 3 つの主要な特徴があります
#1. カプセル化: 情報隠蔽とも呼ばれ、情報を隠すことです。クラスの実装と実装は分離されており、一部のインターフェイスやメソッドのみが外部と接触するか、一部のメソッドのみが開発者が使用できるように公開されます。したがって、開発者は、特定の実装プロセスではなく、このクラスがどのように使用されるかにのみ注意を払う必要があり、これにより、MVC の分業と連携が実現され、プログラム間の相互依存を効果的に回避し、コード モジュール間の疎結合が実現されます。 2. 継承: サブクラスは親クラスのプロパティとメソッドを自動的に継承し、新しいプロパティとメソッドを追加したり、一部のプロパティとメソッドを書き換えたりできます。継承によりコードの再利用性が向上します。 PHP は単一継承のみをサポートします。つまり、サブクラスは親クラスを 1 つだけ持つことができます。 3. ポリモーフィズム: サブクラスは親クラスからプロパティとメソッドを継承し、一部のメソッドを書き換えます。したがって、複数のサブクラスが同じメソッドを持っているにもかかわらず、それらのサブクラスによってインスタンス化されたオブジェクトが、同じメソッドを呼び出した後にまったく異なる結果を得ることができる、この技術がポリモーフィズムです。ポリモーフィズムによりソフトウェアの柔軟性が向上します。22.smarty とは何ですか?またその機能は何ですか?
回答: 回答 1: Smarty は PHP で書かれたテンプレート エンジンであり、最も有名なテンプレート エンジンでもあります。業界の PHP テンプレート エンジンの 1 つこれはロジック コードと外部表示を分離し、混合した PHP ロジック コードを HTML コードから分離するための管理と使用が簡単な方法を提供します
回答 2: Smarty は PHP の 1 つです。世界で最も有名なエンジン フレームワークですが、当社では Smarty テンプレートをカプセル化した TP フレームワークを使用しているため、単独では使用されていません。
回答 3: Smarty はテンプレート エンジンであり、最も重要なことです。それは、テンプレートをキャッシュできることです。一般的に、テンプレートは静的なページを作成し、その中のいくつかの動的部分を区切り文字で切り取り、PHP でテンプレート ファイルを開き、区切り文字内の値を置き換えて出力することで、 PHPLib のテンプレート部分を見てください。
23. TP フレームワークの利点は何ですか?
回答: TP フレームワークは中国人自身が開発したフレームワークです。比較的完成度が高く、国内で利用できるもので、比較的簡単で便利なものが多く、無料でオープンソースである
24. TPの特徴は何ですか?
回答:
1. マルチテーブル クエリは非常に便利です。モデル内のわずか数行のコードで複数のテーブルの関連付け操作を完了できます。
2. スマート テンプレートの統合フロントエンドとバックエンドを分離するための
#3. 複数のキャッシュのサポート テクノロジー、特に memcache のテクニカル サポートは非常に優れています#4. 命名仕様、モデル、ビュー、コントローラーは命名規則に厳密に従い、対応しています名前付けによる 1 対 1
#5. 複数の URL モードのサポート6. 組み込みの Ajax リターン メソッド (xml、json、html などを含む) 7. サポートアプリケーション拡張機能、クラス ライブラリ拡張機能、ドライバー拡張機能など。24、TP フレームワーク内のビッグ レター関数?
答え: U: URL のアセンブリ
A: 内部インスタンス化コントローラーS: キャッシュ処理#R: コントローラーの操作メソッド呼び出し
#D: カスタムモデルクラスのインスタンス化
M: 基本モデル クラスのインスタンス化
I: パラメーターの取得
#L: 現在の言語の設定または取得##C: 設定または構成の取得、保存
25. laravel フレームワークについて紹介してください?回答: laravel フレームワークの設計思想は比較的先進的であり、さまざまな開発モデルの適用に非常に適しています。 Composer は PHP の未来です。Composer がなければ、PHP は間違いなく衰退します。
laravel フレームワークの最大の特徴であり、優れている点は、PHP の比較的新しい機能だけでなく、さまざまな機能が統合されていることです。デザイン パターン、Ioc パターン、依存性注入など
26. laravel には何がありますか?機能?答え: 答え 1:
1強力な REST ルーター: シンプルなコールバック関数で呼び出すことができ、コントローラーとルーターをすばやくバインドします 2.artisan: コマンド ライン ツール、多くの手動タスクが自動化されます
3. 継承可能なテンプレート、ビューの開発と管理を簡素化します
4.ブレード テンプレート: レンダリングの高速化
5.ORM 操作データベース
6.移行: 管理データベースとバージョン管理
7. テスト機能も非常に強力です
8.composer もハイライトです
回答 2: laravel フレームワークでは、ファサード、依存関係注入、Ioc モード、およびさまざまなデザイン パターンが導入されていますなど。
27. データベースの最適化について簡単に説明してください?
回答: データベースの最適化は 4 つの側面から最適化できます:
1構造層: Web サーバーは負荷分散サーバーを使用し、mysql サーバーはマスター/スレーブ レプリケーションと読み取り/書き込み分離を使用します
2. ストレージ層から: 適切なストレージ エンジンを使用し、 3 つのパラダイム3. デザイン層から: パーティションを使用してテーブル、インデックスを分離し、テーブルフィールドに適切なフィールド属性を使用します。逆パラダイムを適切に使用し、mysql キャッシュを有効にします
4. SQL ステートメントレイヤー: 結果が同じ場合は、効率的で高速でリソースを節約できる SQL ステートメントを使用します。
回答: 例外をスローします。 : try...catch を使用すると、例外コードは try コード ブロックに配置されます。例外がトリガーされない場合、コードは実行を継続します。例外がトリガーされた場合は、例外がスローされます。 Catch コード ブロックは例外をキャッチし、例外情報を含むオブジェクトを作成します。 $e->getMessage()、異常なエラーメッセージを出力します。
現在のショッピング カートの実装は、主に Cookie、セッション、またはデータベースとの組み合わせを使用しています。そのメカニズムと機能を分析してみましょう。 1.Cookie
2.Cookie は、サーバーによって生成され、クライアントに保存される情報の一部です。 Web サーバーがクライアントに情報を保存して返すためのメカニズムを定義しており、Cookie ファイルには、サーバーによって設定されたドメイン、パス、有効期間、および変数値が含まれています。今後ユーザーが同じ Web サーバーにアクセスすると、ブラウザは Cookie を変更せずにサーバーに送信します。サーバーがクライアントに元々保存されていた情報を読み取れるようにすることで、Web サイトは訪問者に一連の利便性を提供できます。たとえば、オンライン取引中にユーザーの身元を識別し、セキュリティ要件が必要な状況でユーザーが名前とパスワードを繰り返し入力するのを防ぎます。ポータル Web サイトのトップページ、カスタマイズ、ターゲティング広告など。 Cookieの特性を利用して、WEBアプリケーションの機能を大幅に拡張し、サーバーとクライアント間の接続を確立できるだけでなく、サーバー側でCookieをカスタマイズできるため、ショッピング情報から生成されるCookieの値を変更することもできます。をクライアントに保存することでショッピングカート機能を実現します。 Cookie ベースの方法を使用して、サーバーとブラウザーの間でセッションまたはショッピング カートを実装することには、次の特徴があります:
3. Cookie はクライアント側に保存され、占有リソースはほとんどありません。ブラウザーでは 300 Cookie が許可されます。各 Cookie のサイズは 4KB で、ショッピング カートの要件を満たすのに十分であり、サーバーの負荷も軽減されます;
4. Cookie はブラウザに組み込まれており、簡単に使用できます。ユーザーが誤ってブラウザ ウィンドウを閉じた場合でも、Cookie で定義された有効期間内であれば、ショッピング カート内の情報は失われません (
#5)。Cookie は実行可能ファイルではないため、いかなる方法でも実行されません。したがって、ウイルスを持ち込んだり、ユーザーのシステムを攻撃したりすることはありません; 6. Cookie ベースのショッピング カートでは、ユーザーのブラウザが Cookie をサポートし、有効にするように設定されている必要があります。ショッピングカートは無効になります; 7. Cookie が訪問者のプライバシーを侵害するという議論があるため、一部のユーザーはマシンの Cookie 機能を無効にします。 2. セッション1. セッションは、ショッピング カートを実装するもう 1 つの方法です。セッションは、ユーザーのステータス情報を保存および追跡する機能を提供するため、セッション内の現在のユーザーによって定義された変数とオブジェクトはページ間で共有できますが、アプリケーション内の他のユーザーはアクセスできません。 Cookie は、セッション中にユーザーの個人情報をサーバー側に保存し、セキュリティを向上させます。サーバーがセッションを生成した後、クライアントはセッション ID 識別番号を生成し、サーバーとの同期を維持するためにクライアントに保存します。このセッション ID は読み取り専用です。クライアントが Cookie 機能を無効にすると、URL にパラメータを追加したり、フォームで暗黙的に送信したりすることによって、ページ間でセッションが送信されます。したがって、セッションを使用してユーザーを管理する方が安全かつ効果的です。 2. 同様に、ショッピング カートもセッションを使用して実装できます。このメソッドの特徴は次のとおりです: 1. セッションはクライアントとの同期を維持するための新しいメカニズムを使用しており、セッションに依存しません。 ; 2. Cookie と比較して、セッションはサーバー側に保存される情報であるため、より安全です. したがって、ID マーキング、ショッピングなどの情報をセッションに保存できます; 3. セッションはサーバー リソースを占有し、サーバーの負荷を増加させます。特に同時ユーザーが多い場合、大量のセッションが生成され、サーバーのパフォーマンスに影響します。#4セッションに保存される情報は機密性が高く、ファイルに基づいているため、フォームはサーバーに保存されるため、セキュリティ上のリスクが依然として存在します。
上記は面接での質問を集めたものです。皆様のお役に立てれば幸いです。ありがとう!
その他の関連する質問については、PHP 中国語 Web サイトをご覧ください:
https://www.php.cn/以上が2018 年の典型的な面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。