この記事では、基礎を強化するのに役立つ、PHP 面接の基本的な質問 20 個を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
推奨学習: 「PHP ビデオ チュートリアル」
オブジェクト指向はプログラムの設計手法であり、プログラムの再利用性を高め、プログラムの構造を明確にします。
主な機能: カプセル化、継承、ポリモーフィズム。
http ステートレス プロトコルでは、ユーザーが From から来たかどうかを区別できません。同じ Web サイト内で、同じユーザーが異なるページをリクエストした場合、同じユーザーとはみなされません。
SESSION はサーバー側に保存され、COOKIE はクライアント側に保存されます。セッションは比較的安全ですが、Cookie は特定の方法で変更される可能性があり、安全ではありません。セッションは配信のために Cookie に依存します。 Cookieを無効にすると、セッションが正常に使用できなくなります。
セッションの欠点: サーバー側に保存され、各読み取りはサーバーから読み取られるため、サーバー上のリソースが消費されます。セッションはサーバー側のファイルまたはデータベースに保存されます。デフォルトではファイルに保存されます。ファイル パスは、PHP 設定ファイルの session.save_path で指定されます。セッションファイルは公開されています。
1、2、3、4、および 5 つの原則: (つまり、1: メッセージ シリーズ、2: 成功シリーズ、3: リダイレクト シリーズ、4: リクエスト エラー シリーズ、5: サーバー側エラー シリーズ.)
Varchar と char の違い:
char は固定長の文字型で、割り当てられたスペースと同じだけのスペースを消費します。 Varchar は可変長の文字型で、コンテンツと同じだけのスペースを占有するため、スペースを効果的に節約できます。 varchar型は可変であるため、データ長が変わるとサーバー側で追加の操作が必要となり、char型に比べて効率が悪くなります。
MyISAM タイプはトランザクション、テーブル ロックをサポートしておらず、断片化が起こりやすいです。頻繁に最適化する必要があり、読み取りおよび書き込み速度が高速です。頻繁にクエリを行うアプリケーションに適しています。
InnoDB タイプはトランザクションをサポートしており、行ロック、クラッシュ回復機能があり、読み取りおよび書き込み速度は MyISAM よりも遅いです。挿入および更新操作が多いアプリケーションに適しています。スペースが限られており、全文インデックス作成はサポートされていません。
Create Index:alert table tablename addindex インデックス名 (`フィールド名`)
isset は、変数が存在するかどうかを決定します。複数の変数を渡すことができます。変数の 1 つが存在しない場合は、false が返されます。empty は、変数が空か false かを決定します。変数は 1 つだけです。渡されました。空の場合は false となり、true を返します。
値渡し: 関数スコープ内の値への変更は関数の外では無視されます。
参照渡し: 関数スコープ内の値への変更も無視されます。関数外では無視される これらの変更を反映して
利点と欠点: 値で渡す場合、PHP は値をコピーする必要があります。特に大きな文字列やオブジェクトの場合、これはコストのかかる操作になる可能性があります。参照渡しでは値をコピーする必要がないため、パフォーマンスの向上に非常に役立ちます。
PHP のエラー報告レベルを設定し、現在のレベルを返します。
キャッシュ テクノロジは、動的コンテンツをファイルにキャッシュし、一定期間内に動的ページにアクセスして、データベースに再度アクセスすることなく、キャッシュされたファイルを直接呼び出すことです。
MVC の 3 つの層は、ビジネス モデル、ビュー、コントローラーを指します。コントローラー層はモデルを呼び出してデータを処理し、データを表示のためにビュー層にマップします。
利点は次のとおりです:
① コードの再利用性を実現し、コードの冗長性を回避できる;
② M と V でコードを分離できるため、同じプログラムで異なる式を使用できる
ajax は、JavaScript または JQuery フレームワークを通じて実装できる非同期送信テクノロジーで、部分更新を実現します。これにより、サーバーへの負荷が軽減され、ユーザー エクスペリエンスが向上します。
SQL ステートメントを最適化します。クエリ ステートメントではselect *
を使用しないようにし、どのフィールドをチェックするためにどのフィールドを使用します。
サブクエリの使用を減らし、代わりにテーブル接続を使用します。
ファジー クエリの使用を減らします。
データ テーブルにインデックスを作成します。
プログラム内で頻繁に使用されるデータのキャッシュを生成します。
違い: 失敗した場合: include は警告を生成しますが、require は直接エラー割り込みを生成します。require は実行前にインクルードをロードし、代わりに実行時にロードします:require_onceinclude_once
@ はすべての警告を表し、無視されます
php の変数は変数コンテナ zval に保存されます。変数の型と値を保存することに加えて、zval には is_ref フィールドと refcount フィールドもあります。 refcount は変数を指す要素の数を示し、is_ref は変数に別名があるかどうかを示します。 refcount が 0 の場合、変数コンテナはリサイクルされます。
zval の refcount が 1 減らされた後に 0 より大きい場合、それはガベージ バッファに入ります。バッファーが最大値に達すると、リサイクル アルゴリズムが zval をループして、それがガベージであるかどうかを判断し、解放します。
SQL インジェクションの脆弱性と XSS クロスサイト スクリプティングの脆弱性を回避するにはどうすればよいですか?回答: 基本原則: サーバーまたはプログラムの設計の詳細を外部に公開しないでください (エラーをブロック)、ユーザーが送信したデータを信頼しません (ユーザー送信をフィルターします)。
高速なスピード、コンパイル、キャッシュ技術、プラグインメカニズム、強力なパフォーマンスロジック
htmlspecialchars または htmlentities
プログラミング関連の知識については、プログラミング ビデオをご覧ください。 !
以上が知っておくべき、知っておくべき PHP 面接の基本的な質問 20 (回答付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。