2016ある有名なインターネット会社PHPの面接問題と答え


1文字列"r",","t","x 20"はそれぞれ何を表していますか
答え:rはLinux、unixでは当行に戻る最初の位置を表し、Mac OSでは改行して次の行に戻る最初の位置を表し、Windowsの効果に相当します.「」は、Windowsで改行を表し、次の行の先頭に戻ることを意味します.Mac OSのrの効果に相当し、Linux、unixでは改行のみを表しますが、次の行の開始位置には戻りません.「t」は、キーボードの「TAB」キー、ジャンプ(次の列に移動)を意味します.「x 20」は、ASCIIテーブルで32進数の表示を意味します.
2次の文の出力結果は何ですか.
$a = 3;
echo "$a",'$a',"\\\$a","${a}","$a"."$a","$a"+"$a";

得られた結果は:3$a$a 3336
3次の文の出力結果は何ですか.
setcookie("a","value");
print $_COOKIE['a'];

結果はvalue(この2つの符号化のみが実行されるとPHP Notice:Undefind index:a)
4 phpで現在のページを別のページにリダイレクトするにはどう書きますか?
header();
5マジック引用符(magic_quotes_gpc)とは?マジック引用符(Magic Quotes)は、PHPスクリプトに入力されたデータを自動的にエスケープするプロセスです.ヒント:符号化時にエスケープせずに、実行時に必要に応じてエスケープすることが望ましいです.
6クラスのメソッドで、親クラスの同名メソッドを呼び出すにはどうすればいいですか?parent::メソッド名
7 phpでget、postパラメータ、アップロードされたファイルを取得する方法
$_GET,$_POST,$_FILES

8クライアントのipを取得する方法(intを取得する必要がある)
$_SERVER["REMOTE_ADDR"];ip2long    

9 includeとrequireの違い
require:エラーが発生した後、直接終了して終了し、プログラムはincludeを実行しません:存在しないファイルが含まれており、警告プログラムが実行を続行することを示します.
10 extendsの役割はどのクラスの継承ですか
11@test()と&test()の違い
@test()の役割はtest()メソッドで警告をブロックする役割&test()参照test()メソッド
12 array+arrayとarray_merge()の違い両者の違いは、1キー名が数字の場合、array_merge()は元の値を上書きしませんが、+マージ配列は最初に現れた値を最終結果として返します.一方、後ろの配列に同じキー名を持つ値を「捨てる」(上書きではない)2キー名を文字とした場合、+は最初に現れた値を最終結果として返し、後ろの配列に同じキー名を持つ値を「捨てる」が、array_merge()はそのとき前の同じキー名の値を上書きする
13少なくとも3つのphpオブジェクトのマジック方法とそれらの用途構造方法を列挙してください:_construct()プロファイルメソッド_destruct() __get()は、プライベートで保護された未定義のメンバー属性へのアクセスを制御する_set()プライベートで保護された未定義のメンバー属性を付与制御_isset()プライベートで保護された未定義のメンバー属性に対してissetやemptyの判断制御などを行う
14 fpm FastCGIプロセスマネージャとは
15 php開発でよく見られるいくつかの攻撃と解決策SQL注入について説明します.この問題を解決する方法は、PHPの内蔵mysql_real_escape_string()関数は、任意のユーザーが入力したパッケージとして使用されます.この関数は文字列中の文字をエスケープし,文字列がアポストロフィなどの特殊文字を伝達できないようにし,MySQLを特殊文字に従って操作させる.サイト間スクリプト攻撃(XSS):strip_tags()関数.この関数は、HTMLタグに囲まれたコンテンツを消去したり、htmlspecialchars()関数を使用したりすることができます.
16 echo intval(0.58*100)出力の結果は57で、これはなぜですか?原因は浮動小数点数精度の問題です.単純な10進数は、0.1または0.7のように、わずかな精度を失わずに内部バイナリのフォーマットに変換することはできません.これは混乱した結果をもたらします.たとえば、floor((0.1+0.7)*10)は通常、予想された8ではなく7を返します.この結果の内部の表示は実際には7.9999999999に似ているからです.これは一つの事実と関係があり、それは有限桁数でいくつかの10進数を正確に表現することは不可能である.例えば、10進数の1/3は0.3333333になっています....だから、浮動小数点数の結果が最後の1位に正確になったとは信じないでください.2つの浮動小数点数が等しいかどうかも比較しないでください.確かにより高い精度が必要な場合は、任意の精度数学関数またはgmp関数を使用する必要があります.