PHP 面接の質問セット

Jun 23, 2016 pm 01:37 PM





1、 语句include和require都能把另外一个文件包含到当前文件中,它们的区别是___;为避免多此包含同一个文件,可以用语句_____来代替它们。


1、PHP程序执行到require()时,只会读取一次档案,故常放在程序开头,档案引入后PHP会将网页档重新编译,让引入档成为原先网页的一部分。 2、PHP程序执行到include()时,每次皆会读取档案,故常用于流程控制的区段,如条件判断或循环中。 3、require() :无条件包含,如果文件不存在,会报出一个fatal error.脚本停止执行 4、include() : 有条件包含,如果文件不存在,会给出一个 warning,但脚本会继续执行 5、推荐使用require_once()和include_once(),可以检测文件是否有重复包含。




2、表单中 get与post提交方法的区别?


POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器,但速度慢。而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制且不安全,但是执行效率却比 Post方法好。具体来说如下:
1、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
2、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
3、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
4、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
5、Get是Form的默认方法。




3、foo()和@foo()之间有什么区别?


PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
注意: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。
例如,可以把它放在变量,函数和include()调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。




4、PHP中===和==有什么区别?


===会比较两个变量的类型~~   
  而==只比较他们的值~~~  




5、简述DIV元素和SPAN元素的区别


他们同为块级元素,但span又是内联对象


举例来说:

第一例1
第一例1

表示される効果は次のとおりです: 最初の例 1
最初の例 1
And 2 番目の例 22 番目の例 2
表示される効果は次のとおりです。例 2


div のデフォルトの幅は 100% ですが、span にはデフォルトの幅がないことが理解できます
最も明らかな違いは、DIV はブロック要素であり、SPAN はインライン要素であることです。ブロック要素は、前後に改行が入ったインライン要素と同等です。実際、block 要素と inline 要素は静的ではありません。block 要素に display: inline が定義されている限り、block 要素は inline 要素に定義されている場合は inline 要素になります。要素。




6. Isset();empty(); の違いは何ですか?さまざまなデータをもとに判断した結果はどうなるのか?
$a=0;$a='0′;$a=”;$a=false;$a=null;


Isset は変数が存在するかどうかを決定し、存在する場合は true を返します。変数が空の場合は true を返します
Isset の判定: true、true、true、true




7. 説明してください。 php で渡される値。 値渡しと参照渡しの違いは何ですか?転送された値を使用して関数内で変数を再割り当てします)
参考: 変数への参照の転送。関数内のすべての操作は変数の転送操作と同等であり、大きな変数を転送する場合に効率的です。print および print_r は関数です。ステートメントには戻り値がありませんが、関数は戻り値を持つことができます (役に立たない場合でも)
print は単純な型の変数 (int、string など) の値のみを出力できます
print_r は値を出力できます複雑な型変数 (配列、オブジェクトなど)




9. 値に応じて、Sort() と assort()

sort() の違いは何ですか?英語のアルファベット順ソートでは、配列のインデックス キーの番号が 0 から n-1 に再割り当てされます。これは主に、配列のインデックス キーの値が重要でない場合に配列をソートするために使用されます。 PHP には assort() 関数がないため、asort() の入力エラーが発生する可能性があります。asort() は配列をソートし、配列のインデックスをユニットに関連付けたままにするために使用されます。ここで、単位の順序が重要です。
ksort() は、配列内のインデックス キーの値に基づいて、英語のアルファベット順に並べ替えられます。特に、インデックス キーを並べ替える必要がある連想配列に適しています。 Mysql_fetch_row() と mysql_fetch_array() の違いは何ですか?


これら 2 つの関数の戻り値は何ですか? 違いは、最初の関数によって返される配列には値のみが含まれることです。配列の添字 $row[0]、$row[1]、MySQL_fetch_array() の戻り値 配列には、最初の形式とキーと値のペアの形式の両方が含まれます。次のようにデータを読み取ることができます (データベース フィールドがユーザー名の場合、 passwd):


$row['username'], $row['passwd' ]






11. mysql のストレージ エンジン myisam と innodb の違いは何ですか?


2 つのタイプの主な違いは、Innodb がトランザクション処理、外部キー、および行レベルのロックをサポートしていることです。 MyISAM はこれをサポートしていません。そのため、MyISAM は小規模なプロジェクトでのみ使用するのに適していると考えられています。
MyISAM タイプはトランザクション処理などの高度な処理をサポートしませんが、InnoDB タイプはサポートします。 MyISAM タイプのテーブルはパフォーマンスを重視しており、その実行時間は InnoDB タイプよりも高速ですが、トランザクション サポートは提供されていません。一方、InnoDB はトランザクション サポートと外部キーなどの高度なデータベース機能を提供します。




12. 抽象クラスとインターフェイス クラスの違いは何ですか?
1. 抽象クラス内のメソッドは実装できますが、インターフェイス内のメソッドは宣言のみ可能です。


2. インターフェイスは設計の結果です
抽象クラスは再構築の結果です


3. インターフェイスは特別な抽象クラスです 特別なことは、インターフェイス内のすべてのメソッドが抽象メソッドであることです。インターフェース内の属性は、静的な最終定数のみにすることができます
1. インターフェースは仕様を具体化し、抽象クラスはテンプレート設計を具体化します。
2. インターフェース内のすべてのメソッドは抽象メソッドであり、抽象クラスはそれらを実装するメソッドを持つことができます。
3. 静的メソッドはインターフェイスでは定義できませんが、抽象クラスでは定義できます。
4. インターフェース内のすべての変数は静的定数であり、抽象クラスは通常の変数を持つことができます。
5. インターフェイス内にコンストラクターと初期化ブロックを含めることはできませんが、抽象クラス内には含めることができます。
6. クラスは複数のインターフェースを実装できますが、継承できる抽象クラスは 1 つだけです。






13. Cookie とセッションの違いは何ですか? Cookie を無効にしても、セッションは通常どおり使用できますか?セッションのデメリットは何ですか?セッションはサーバー側のどこに存在しますか?共有ですか、それともプライベートですか?


1. Cookie データはクライアントのブラウザに保存され、セッション データはサーバーに保存されます。 2. Cookie はあまり安全ではありません。ローカルに保存された COOKIE を他人が分析して、セキュリティ上の理由から COOKIE セッションを使用する必要があります。 3. セッションはサーバー上に一定期間保存されます。アクセスが増加すると、サーバーのパフォーマンスがさらに消費され、サーバーのパフォーマンスを低下させるために COOKIE を使用する必要があります。 4. 1 つの Cookie によって保存されるデータは 4K を超えることはできません。多くのブラウザでは、サイトで保存できる Cookie は 20 個までに制限されています。セッションが存在する前提は、ブラウザが Cookie をサポートしていることです。ユーザーが初めて Web サイトにアクセスしたとき、Cookie にはセッション ID が含まれていません。その後、サーバーはセッション ID を Cookie に書き込み、セッション ID を取得します。ただし、サーバーが Cookie をサポートしていない場合、ユーザーが閲覧する場合、各リクエストのセッション ID は存在せず、サーバーはユーザーが毎回異なるユーザーであると認識するため、セッション ID は存在しません。ユーザーの以前の操作の結果をサーバーに保存する方法




14. -> :: 演算子の違い


クラス内の静的メソッドと静的プロパティの参照メソッド
例:
クラス Test {
public static $test = 1;
public static function test(){
}
}


はい Test::$test を使用して、オブジェクトをインスタンス化せずに $test 属性の値を直接取得します
同じことが当てはまりますstatic メソッド呼び出し Test::test(); static メソッド test を直接呼び出す


PHP クラス内のメンバ変数やメソッドにアクセスする場合 参照先の変数やメソッドが const (定数の定義) または static (宣言) として宣言されている場合逆に、参照される変数またはメソッドが const または static として宣言されていない場合は、演算子 -> を使用する必要があります。


さらに、クラス内から const または static 変数またはメソッドにアクセスする場合は、自己参照を使用する必要があります。逆に、クラス内から非 const または static 変数またはメソッドにアクセスする場合は、自己参照を使用する必要があります。 $this を使用する必要があります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles