PHP インタビューのトップ 100 の質問と回答 (PDF)

ここでは、新人だけでなく経験豊富な候補者も夢の仕事に就くための PHP 面接の質問と回答を紹介します。

 

新人向けの PHP 面接の質問


1) PHP とは何ですか?

PHP は、開発者が生成された Web ページを動的に作成できるようにするスクリプトに基づく Web 言語です。


2) PHP の頭文字は何の略ですか?

PHP ハイパーテキスト プリプロセッサの略です。

👉 無料 PDF ダウンロード: PHP インタビューの質問と回答


3) PHP はどのプログラミング言語に似ていますか?

PHP の構文は Perl に似ており、 C


4) PEAR は何の略ですか?

PEAR は「PHP 拡張機能およびアプリケーション リポジトリ」を意味します。 PHP を拡張し、Web 開発者向けにより高いレベルのプログラミングを提供します。


5) 実際に使用されているPHPのバージョンは何ですか?

PHP の推奨バージョンはバージョン 7.1 または 7.2 です。


6) コマンドラインから PHP スクリプトを実行するにはどうすればよいですか?

PHP コマンド ライン インターフェイス (CLI) を使用し、次のように実行するスクリプトのファイル名を指定するだけです。
php script.php


7) コマンドラインインターフェイスから対話型 PHP シェルを実行するにはどうすればよいですか?

次のように、オプション -a を指定して PHP CLI プログラムを使用するだけです。
php -a


8) コードの PHP ブロックを開始および終了する正しい方法と最も一般的な XNUMX つの方法は何ですか?

PHP スクリプトを開始および終了する最も一般的な方法は次の XNUMX つです。

 <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>

9) 出力をブラウザに直接表示するにはどうすればよいですか?

出力をブラウザに直接表示できるようにするには、特別なタグを使用する必要があります。 。


10) PHP 4 と PHP 5 の主な違いは何ですか?

PHP 5 には、多数の追加 OOP (オブジェクト指向プログラミング) 特徴。


11) PHP では多重継承がサポートされていますか?

PHP は単一継承のみをサポートします。 これは、キーワード「extended」を使用してクラスを XNUMX つのクラスからのみ拡張できることを意味します。


12) 最終クラスと最終メソッドの意味は何ですか?

「final」はPHP5で導入されました。 Final クラスは、このクラスを拡張できず、final メソッドをオーバーライドできないことを意味します。


13) PHP ではオブジェクトの比較はどのように行われますか?

演算子 '==' を使用して、2 つのオブジェクトが同じクラスからインスタンス化され、同じ属性と等しい値を持っているかどうかをテストします。 同一性演算子 '===' を使用して、2 つのオブジェクトが同じクラスの同じインスタンスを参照しているかどうかをテストできます。


14) PHP と HTML はどのように相互作用しますか?

PHP スクリプトを通じて HTML を生成でき、HTML から PHP に情報を渡すことができます。


15) フォームまたは URL を介して値を渡す場合、どのような種類の操作が必要ですか?

フォームまたは URL を通じて値を渡したい場合は、htmlspecialchars() と urlencode() を使用して値をエンコードおよびデコードする必要があります。


16) PHPと Javascript 交流する?

PHPと Javascript PHPはサーバーサイド言語なので直接やりとりすることはできません。 Javascript PHPはクライアントサイド言語です。しかし、PHPは変数を生成できるので、変数を交換することができます。 Javascript ブラウザで実行されるコードであり、URL 経由で特定の変数を PHP に返すことが可能です。


17) 画像機能を使用するには何が必要ですか?

画像関数を実行するにはGDライブラリが必要です。


18) 関数「imagetypes()」の用途は何ですか?

imagetypes() GD-PHP の現在のバージョンでサポートされている画像の形式とタイプを示します。


19) 画像のプロパティ (サイズ、幅、高さ) を取得するために使用する関数は何ですか?

この 関数は getimagesize() サイズに関しては、 imagesx() 幅と imagesy() 高さのために。


20) 実行時の失敗は include() 関数と require() 関数でどのように処理されますか?

関数が require() ファイルにアクセスできない場合は、致命的なエラーで終了します。 しかし include() 関数は警告を出し、PHP スクリプトは実行を続けます。


21) require() と require_once() の主な違いは何ですか?

require(), require_once() XNUMX 番目の関数は、実行前に PHP スクリプトが既に含まれているかどうかをチェックする点を除いて、同じタスクを実行します。

(include_once() と include() も同様)


22) PHP スクリプトでテキストを表示するにはどうすればよいですか?

次の XNUMX つの方法が考えられます。

<!--?php echo "Method 1"; print "Method 2"; ?-->

23) PHP を使用して変数の情報を人間が読める形で表示するにはどうすればよいですか?

人間が読める形式で結果を表示するために、 print_r().


24) PHP スクリプトの実行時間を無限に設定するにはどうすればよいですか?

スクリプトの先頭に追加された set_time_limit(0) は、PHP エラー「最大実行時間を超過しました」が発生しないように、実行時間を無限に設定します。 php.ini ファイルで指定することもできます。


経験者向けの PHP 面接の質問と回答

25) PHP エラー「PHP の解析エラー - x 行目に予期しない T_variable」は何を意味しますか?

これは、行 x の間違いによりプログラムの解析と実行が停止されることを表す PHP 構文エラーです。


26) データを Excel ファイルにエクスポートするにはどうすればよいですか?

最も一般的で使用される方法は、Excel でサポートされている形式でデータを取得することです。 たとえば、フィールド間の区切り文字としてカンマを選択して .csv ファイルを作成し、そのファイルを Excel で開くことができます。


27) file_get_contents() 関数は何に役立ちますか?

file_get_contents() ファイルを読み取り、それを文字列変数に保存します。


28) どうすれば接続できますか MySQL PHP スクリプトからデータベースを取得しますか?

に接続できるようにするには MySQL データベースに接続するには、次のように mysqli_connect() 関数を使用する必要があります。

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->

29) mysql_pconnect() 関数は何に役立ちますか?

mysql_pconnect() データベースへの永続的な接続を確保します。これは、PHP スクリプトが終了しても接続が閉じないことを意味します。

この関数は PHP 7.0 以降ではサポートされていません


30) MySQL の結果セットは PHP でどのように処理されますか?

結果セットは、mysqli_fetch_array、mysqli_fetch_assoc、mysqli_fetch_object、または mysqli_fetch_row を使用して処理できます。


31) 結果セットで返される行数を知るにはどうすればよいですか?

関数 mysqli_num_rows() 結果セット内の行数を返します。


32) クエリによって影響を受けるエントリの数を与える関数はどれですか?

mysqli_affected_rows() SQL クエリの影響を受けるエントリの数を返します。


33) mysqli_fetch_object() と mysqli_fetch_array() の違いは何ですか?

この mysqli_fetch_object() 関数は最初に一致する単一のレコードを収集します。 mysqli_fetch_array() テーブルから一致するすべてのレコードを配列に収集します。


34) URL 経由で送信されたデータに GET メソッドでアクセスするにはどうすればよいですか?

GET メソッド経由で送信されたデータにアクセスするには、次のように $_GET 配列を使用します。

www.url.com?var=value
$variable = $_GET["var"]; this will now contain 'value'

35) URL 経由で送信されたデータに POST メソッドでアクセスするにはどうすればよいですか?

この方法で送信されたデータにアクセスするには、$_POST 配列を使用します。

ユーザーが投稿フォームへの送信をクリックしたときに、フォーム上に「var」というフォーム フィールドがあると想像してください。その後、次のように値にアクセスできます。

$_POST["var"];

36) 与えられた変数の値が数値であることをどのように確認できますか?

専用関数 is_numeric() を使用して数値かどうかを確認することができます。


37) 指定された変数の値が英数字であることをどのように確認できますか?

専用関数 ctype_alnum を使用すると、英数字値かどうかを確認できます。


38) 指定された変数が空かどうかを確認するにはどうすればよいですか?

変数に値があるかどうかを確認したい場合は、empty() 関数を使用できます。


39) unlink() 関数は何を意味しますか?

unlink() 関数はファイル システムの処理専用です。 エントリとして指定されたファイルを削除するだけです。


40) unset() 関数は何を意味しますか?

unset() 関数は変数管理専用です。 変数が未定義になります。


41) データベースに保存する前にデータをエスケープするにはどうすればよいですか?

addlashes 関数を使用すると、データベースに保存する前にデータをエスケープできます。


42) 文字列からエスケープ文字を削除するにはどうすればよいですか?

ストリップスラッシュ関数を使用すると、アポストロフィの前にあるエスケープ文字を削除できます。 string.


43) 受信データを自動的にエスケープするにはどうすればよいですか?

PHP の設定ファイルで Magic quotes エントリを有効にする必要があります。


44) get_magic_quotes_gpc() 関数は何を意味しますか?

関数 get_magic_quotes_gpc() は、マジック クオートがオンになっているかオフになっているかを示します。


45) データから HTML タグを削除することはできますか?

strip_tags() 関数を使用すると、HTML タグから文字列を削除できます。


46) 関数内の静的変数は何に役立ちますか?

静的変数は最初にのみ関数内で定義され、その値は関数呼び出し中に次のように変更できます。

<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction();        //1 testFunction();        //2 testFunction();        //3 ?-->

47) PHP スクリプトの関数でアクセス可能な変数を定義するにはどうすればよいですか?

この機能は、global キーワードを使用して可能になります。


48) 関数から値を返すにはどうすればよいですか?

関数は、「return $value;」命令を使用して値を返します。


49) パスワードをハッシュするために使用する最も便利なハッシュ方法は何ですか?

高速であると考えられている md5、sha1、sha256 などの一般的なハッシュ アルゴリズムを使用するよりも、ネイティブで複数のハッシュ アルゴリズムをサポートする crypt() または crypt() よりも多くのバリアントをサポートする関数 hash() を使用することをお勧めします。したがって、これらのアルゴリズムを使用してパスワードをハッシュすると、脆弱性が生じる可能性があります。


50) デジタル署名の生成と検証を行う暗号拡張機能はどれですか?

PHP-OpenSSL 拡張機能は、デジタル署名の生成と検証を含むいくつかの暗号化操作を提供します。


5 年の経験を持つ PHP 面接の質問

51) PHP スクリプトで定数はどのように定義されますか?

define() ディレクティブを使用すると、次のように定数を定義できます。

define ("ACONSTANT", 123);

52) 変数を参照によって渡すにはどうすればよいですか?

参照によって変数を渡すことができるようにするには、次のように変数の前にアンパサンドを使用します。 $var1 = &$var2


53) PHP では整数 12 と文字列「13」の比較は機能しますか?

PHP ではすべてを整数型にキャストするため、「13」と 12 を比較できます。


54) PHP で型をキャストするにはどうすればよいですか?

出力型の名前は、次のようにキャストされる変数の前にかっこで指定する必要があります。

* (int), (integer) – 整数にキャストします

* (bool)、(boolean) – ブール値にキャストします

* (float)、(double)、(real) – float にキャスト

* (文字列) – 文字列にキャストします

* (配列) – 配列にキャストします

* (オブジェクト) – オブジェクトにキャストします


55) 条件文が endif で終わるのはどのような場合ですか?

元の if の後に: が続き、その後中括弧なしのコード ブロックが続く場合。


56) PHP では三項条件演算子はどのように使用されますか?

これは、条件と、指定された条件が真または偽の場合に実行する命令を記述する 2 つのオペランドの 3 つの式で構成されます。

Expression_1?Expression_2 : Expression_3;

57) func_num_args() 関数は何に使用されますか?

関数 func_num_args() は、関数に渡されるパラメータの数を与えるために使用されます。


58) 変数 $var1 が 10 に設定され、$var2 が文字 var1 に設定されている場合、$$var2 の値は何ですか?

$$var2 には値 10 が含まれています。


59) :: を介してクラスにアクセスするとはどういう意味ですか?

:: は、オブジェクトの初期化を必要としない静的メソッドにアクセスするために使用されます。


60) PHP では、オブジェクトは値によって渡されますか、それとも参照によって渡されますか?

PHP では、オブジェクトは参照によって渡されます。


61) 親コンストラクターはクラス コンストラクター内で暗黙的に呼び出されますか?

いいえ、親コンストラクターは次のように明示的に呼び出す必要があります。

parent::constructor($value)

62) __sleep と __wakeup の違いは何ですか?

__sleep は保存する必要があるすべての変数の配列を返し、__wakeup はそれらを取得します。


63) 何が速いのですか?

1- 次のように XNUMX つの変数を組み合わせます。

$variable1 = 'Hello ';

$variable2 = 'World';

$variable3 = $variable1.$variable2;

Or

2- $variable3 = "$variable1$variable2";

$variable3 には「Hello World」が含まれます。 特に大規模なデータセットの場合、最初のコードは XNUMX 番目のコードより高速です。


64) セッションの定義は何ですか?

セッションは、複数の PHP ページにわたって一時データを保存できるようにする論理オブジェクトです。


65) PHP でセッションを開始するにはどうすればよいですか?

session_start() 関数を使用すると、セッションをアクティブ化できます。


66) セッション ID をどのように伝達できますか?

Cookie または URL パラメーターを介してセッション ID を伝達できます。


67) 永続的な Cookie の意味は何ですか?

永続 Cookie は、ブラウザのコンピュータ上の Cookie ファイルに永続的に保存されます。 デフォルトでは、Cookie は一時的なものであり、ブラウザを閉じると消去されます。


68) セッションはいつ終了しますか?

セッションは、PHP スクリプトの実行が終了すると自動的に終了しますが、session_write_close() を使用して手動で終了することもできます。


69) session_unregister() と session_unset() の違いは何ですか?

session_unregister() 関数は現在のセッションからグローバル変数の登録を解除し、session_unset() 関数はすべてのセッション変数を解放します。


70) $GLOBALS とはどういう意味ですか?

$GLOBALS は、スクリプトのグローバル スコープで現在定義されているすべての変数への参照を含む連想配列です。


10 年の経験を持つ PHP 面接の質問

71) $_SERVER とはどういう意味ですか?

$_SERVER は、パス、ヘッダー、スクリプトの場所など、Web サーバーによって作成された情報を含む配列です。


72) $_FILES とはどういう意味ですか?

$_FILES は、HTTP POST メソッドを介して現在のスクリプトに送信される項目で構成される連想配列です。


73) $_FILES['userfile']['name'] と $_FILES['userfile']['tmp_name'] の違いは何ですか?

$_FILES['userfile']['name'] はクライアント マシン上のファイルの元の名前を表します。

$_FILES['userfile']['tmp_name'] は、サーバーに保存されているファイルの一時ファイル名を表します。


74) ファイルのアップロードに問題がある場合、どのようにしてエラーを取得できますか?

$_FILES['userfile']['error'] には、アップロードされたファイルに関連付けられたエラー コードが含まれます。


75) アップロードするファイルの最大サイズを変更するにはどうすればよいですか?

php.iniのupload_max_filesizeを変更することで、アップロードするファイルの最大サイズを変更できます。


76) $_ENV とはどういう意味ですか?

$_ENV は、環境メソッドを介して現在の PHP スクリプトに送信される変数の連想配列です。


77) $_COOKIE とはどういう意味ですか?

$_COOKIE は、HTTP Cookie を使用して現在の PHP スクリプトに送信される変数の連想配列です。


78) 変数のスコープとは何を意味しますか?

変数のスコープは、変数が定義されているコンテキストです。 ほとんどの場合、すべての PHP 変数のスコープは XNUMX つだけです。 この単一のスコープは、含まれるファイルと必須ファイルにも及びます。


79) 「BITWISE AND」演算子と「LOGICAL AND」演算子の違いは何ですか?

$a と $b: $a と $b の両方が TRUE の場合は TRUE。

$a & $b: $a と $b の両方に設定されているビットが設定されます。


80) XNUMX つの主な文字列演算子は何ですか?

1 つ目は連結演算子 ('.') で、右引数と左引数の連結を返します。2 つ目は ('.=') で、右引数を左引数に追加します。


81) 配列演算子「===」はどういう意味ですか?

$a === $b $a と $b が同じキー/値ペアを同じ順序で同じタイプを持つ場合に TRUE。


82) $a != $b と $a !== $b の違いは何ですか?

!= は不等号 ($a が $b と等しくない場合は TRUE) を意味し、!== は非同一性 ($a が $b と等しくない場合は TRUE) を意味します。


83) PHP 変数が特定のクラスのインスタンス化されたオブジェクトであるかどうかをどのように判断できますか?

PHP 変数が特定のクラスのインスタンス化されたオブジェクトであるかどうかを確認するには、instanceof を使用します。


84) goto ステートメントは何に役立ちますか?

goto ステートメントを配置すると、PHP プログラム内でジャンプできるようになります。 ターゲットはラベルとその後に続くコロンによって指定され、命令は goto ステートメントとそれに続く目的のターゲット ラベルとして指定されます。


85) Exception::getMessage と Exception::getLine の違いは何ですか?

Exception::getMessage を使用すると例外メッセージを取得でき、Exception::getLine を使用すると例外が発生した行を取得できます。


86) Exception::__toString という式は何を意味しますか?

Exception::__toString は、例外の文字列表現を提供します。


87) 設定ファイルを解析するにはどうすればよいですか?

関数 parse_ini_file() を使用すると、filename で指定された ini ファイルをロードし、その設定を連想配列で返すことができます。


88) 変数が設定されているかどうかをどのように判断できますか?

ブール関数 isset は、変数が設定されており、NULL ではないかどうかを判断します。


89) 関数 strstr() と stristr() の違いは何ですか?

文字列関数 strstr(string allString, string occ) は、最初に出現した occ から allString の終わりまでの allString の一部を返します。 この関数では大文字と小文字が区別されます。 stristr() は、大文字と小文字を区別しないことを除いて、strstr() と同じです。


90) for と foreach の違いは何ですか?

for は次のように表現されます。

for (expr1; expr2; expr3)

ステートメント

最初の式は最初に 2 回実行されます。 各反復で expr3 が評価されます。 TRUE の場合、ループが続行され、for 内のステートメントが実行されます。 FALSE と評価された場合、ループの実行は終了します。 exprXNUMX は各反復の最後にテストされます。

ただし、foreach は配列を反復処理する簡単な方法を提供し、配列とオブジェクトでのみ使用されます。


91) 専用のボタンを使用してフォームを送信することはできますか?

使用することが可能です document.form.submit() フォームを送信する機能。 例えば: <input type=button value="SUBMIT" onClick="document.form.submit()">


92) ereg_replace() と eregi_replace() の違いは何ですか?

関数 eregi_replace() は、アルファベット文字を照合するときに大文字と小文字の区別を無視することを除いて、関数 ereg_replace() と同じです。


93) クエリ文字列内の特殊文字を保護することは可能ですか?

はい、urlencode() 関数を使用して特殊文字を保護します。


94) PHP で発生する可能性のあるエラーの XNUMX つのクラスは何ですか?

エラーの XNUMX つの基本クラスは、通知 (非クリティカル)、警告 (重大なエラー)、および致命的エラー (重大なエラー) です。


95) 文字 \034 と \x34 の違いは何ですか?

\034 は 34 進数の 34、\x34 は XNUMX 進数の XNUMX です。


96) ページ間のナビゲーションを通じて変数を渡すにはどうすればよいですか?

セッション、Cookie、または非表示のフォームフィールドを使用して、PHP ページ間で変数を渡すことができます。


97) PHP スクリプトの実行時間を延長することはできますか?

set_time_limit(int 秒) を使用すると、PHP スクリプトの実行時間を延長できます。 デフォルトの制限は 30 秒です。


98) クッキーを破棄することは可能ですか?

はい、過去の有効期限を持つ Cookie を設定することで可能です。


99) PHP のデフォルトのセッション時間は何ですか?

PHPのデフォルトのセッション時間はブラウザを閉じるまでです。


100) PHP で COM コンポーネントを使用することはできますか?

はい、フレームワークとして提供される PHP スクリプトに (分散) コンポーネント オブジェクト モデル コンポーネント ((D)COM) を統合することができます。


101) 複数の PHP プロジェクト間で Memcache の単一インスタンスを共有できるかどうか説明してください。

はい、複数のプロジェクト間で Memcache の単一インスタンスを共有することができます。 Memcache はメモリ ストア スペースであり、XNUMX つ以上のサーバーで memcache を実行できます。 特定のインスタンスのセットと通信するようにクライアントを構成することもできます。 したがって、同じホスト上で XNUMX つの異なる Memcache プロセスを実行できますが、それらは完全に独立しています。 ただし、データをパーティション分割している場合は、どのインスタンスからデータを取得するか、どのインスタンスにデータを配置するかを知る必要があります。


102) PHP に変更を加えたときに Memcached を更新する方法を説明してください。

PHP が変更された場合は、次のようにして Memcached を更新できます。

  • キャッシュを積極的にクリアする: 挿入または更新が行われたときにキャッシュをクリアする
  • キャッシュをリセットする: これは最初の方法と似ていますが、キーを削除して次のデータ要求を待ってキャッシュを更新するのではなく、挿入または更新後に値をリセットします。

これらの面接の質問は、あなたの活力(口頭)にも役立ちます