PHP の面接の質問は常に変化します。また、PHP の面接の質問における筆記試験の質問、主要な技術的な質問、thinkphp の質問、および間違いが起こりやすい質問についても紹介しました。これらはすべて、面接で遭遇する質問です。私は最近、多くの企業が発行する PHP 面接の質問が PHP レベルを反映している可能性があることを発見しました。 phpについての理解はできていますか?
1.
<?php echo count(strlen(“http://php.net”)); ?>
の実行結果は何ですか?
答え: 1
説明: count(var) は、配列またはオブジェクト内の要素の数を数えるために使用されます。 var が null または空の配列の場合、結果は 0 になります。 var が通常の変数の場合、1 を返します。通常の状況では、var 内の要素または属性の数が返されます。
2. list() 関数を使用する際に注意すべき点は何ですか?
答え: list() は文法構造です。 List($array) は、配列内の要素をいくつかの変数にすばやく割り当てるために使用されます。使用する場合、$array はインデックス配列である必要があり、インデックス値は 0 から始まることに注意してください。
3. php.ini のセーフモードをオンにするとどの機能が影響を受けるか説明してください。
答え: Safe_mode は php の セーフ モード です。有効にすると、主にシステム操作、ファイル、権限設定、その他の方法に影響を及ぼし、主に Web シェルを処理するために使用されます。影響を受ける関数の一部を以下に示します:
ckdir,move_uploaded_file,chgrp,parse_ini_file, chown,rmdir,copy,rename,fopen,require,highlight_file,show_source,include,symlink,link,touch,mkdir,unlink,exec, shell_exec,pasathru,system,popen
注意してください: php5.3 以降では、safe_mode は非推奨となり、php5.4 以降では、この機能は完全に削除されます。
4. POSIXスタイルと互換性のあるPrelスタイル正規表現の主な機能を類推して説明してください。
答え: POSIX スタイル: 正規表現 ereg に一致し、ereg_replace を置き換えます
Prel スタイル: 正規表現 preg_match に一致し、preg_replace を置き換えます
Preg_match は ereg より高速で、preg_replace は ereg_replace より高速です。
5. コマンドで php スクリプトを実行する方法 (2 つの方法を記述します)、および php スクリプトにパラメーターを渡す方法は?
答え: 最初の方法: まず、php インストールディレクトリに入り、php path/filename.php を実行します。
例:
php my_script.php php -f "my_script.php"
2 番目の方法: php -r "php script"; (php の開始文字と終了文字を追加する必要はありません)。
例:
php -r "print_r(get_defined_constants());"
PHP スクリプトにパラメータを渡す:
最初の方法: php -r "var_dump($argv);" -- -h (注: 渡されるパラメータが - で始まる場合は、次を使用する必要があります)パラメーター リストの区切り文字 -- 正しく渡すことができます)
2 番目の方法: test.php ファイル コード:
#!/usr/bin/php <?phpvar_dump($argv);?>
./test.php -h -- foo (php の先頭に #!/usr/bin を追加します)ファイル./php では、-)
6 で始まるパラメータを直接渡すことができます。それぞれの使用例を教えてください。
答え:
1.construct(): オブジェクトをインスタンス化するときに自動的に呼び出されます。
2. destruct(): オブジェクトが破棄されるか、スクリプトの実行が終了すると自動的に呼び出されます。
3. call(): この関数は、オブジェクトに存在しないメソッドを呼び出すときに実行されます。
4. get(): オブジェクトの存在しない属性を取得する場合にこの関数を実行します。
5. set(): この関数は、オブジェクトに存在しない属性を設定するときに実行されます。
6. isset(): この関数は、オブジェクトの特定の属性が存在するかどうかを検出するときに実行されます。
7. unset(): この関数はオブジェクトの属性を破棄するときに実行されます。
8. toString(): オブジェクトを文字列として出力する場合にこの関数を実行します。
9. clone(): この関数はオブジェクトのクローンを作成するときに実行されます。
10. autoload(): オブジェクトをインスタンス化する際、クラスが存在しない場合、この関数を実行してクラスを自動的にロードします。
11. sleep(): シリアル化する前に呼び出され、シリアル化するオブジェクトの属性を指定できます。 12. wakeup: Unserialize が以前に呼び出され、オブジェクトの初期化を実行できます。 13. set_state(): var_export が呼び出されたときに呼び出されます。 set_state の戻り値を var_export の戻り値として使用します。 14. invoke(): このメソッドは、オブジェクトを関数として使用するときに実行されます。これは一般的に推奨されません。7. PHP のガベージ コレクションのメカニズムを簡単に説明します。
答え: php の変数は、変数コンテナー zval に保管されるだけでなく、変数の型と値を保管するだけでなく、zval には is_ref フィールドと refcount フィールドもあります。 refcount は変数を指す要素の数を示し、is_ref は変数に別名があるかどうかを示します。 refcount が 0 の場合、変数コンテナはリサイクルされます。 zval の refcount が 1 減らされた後に 0 より大きい場合、それはガベージ バッファに入ります。バッファーが最大値に達すると、リサイクル アルゴリズムが zval をループして、それがガベージであるかどうかを判断し、解放します。8. PHP を使用して双方向キューを実装します。
キューは先入れ先出しベースで動作する線形テーブルです。 一方向キュー: 先頭からのみ入力でき、最後尾からのみ終了できます。 双方向キュー: 両方。頭と尻尾は出入りできますclass DuiLie { private $array = array();//声明空数组 public function setFirst($item){ return array_unshift($this->array,$item);//头入列 } public function delFirst(){ return array_shift($this->array);//头出列 } public function setLast($item){ return array_push($this->array,$item);//尾入列 } public function delLast(){ return array_pop($this->array,$item);//尾出列 } public function show(){ var_dump($this->array);//打印数组 } public function Del(){ unset($this->array);//清空数组 } }
概要:
この記事で紹介されている PHP 面接の質問は、開発の仕事でよく遭遇するものばかりです。そのため、これらの質問は、PHP についてどれだけ知っているか、実際にどれだけ開発したかを反映することができるため、非常に直感的な PHP 面接の質問になります。これは助かります!
関連する推奨事項:
以上がPHP に関する知識を反映する 8 つの PHP 面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。