インターネットで上級 PHP の面接の質問をいくつか見ました。 。
何もすることがなかったので、いくつかの答えを考え出しました。 。 。包括的ではないかもしれないので、後で保存しておきます。
1.基礎知識のポイント
1.1 HTTP プロトコルのいくつかのステータス コードの意味: 503 500 401 403 404 200 301 302。 。 。
200: リクエストは成功し、リクエストされたデータが返されます。
301: 永続的なリダイレクト。
302: 一時的なリダイレクト。
401: 現在のリクエストにはユーザー認証が必要です。
403: サーバーはリクエストの実行を拒否しました。つまり、権限がありません。
404: リクエストは失敗しました。リクエストされたデータがサーバー上に見つかりませんでした。
500: サーバーエラー。一般的なサーバー側プログラム実行エラー。
503: サーバーは一時的にメンテナンス中か過負荷状態です。この状態は一時的なものです。
1.2 Include require include_once require_once の違い
失敗は別の方法で処理されます:
require に失敗すると、致命的レベルのエラーが生成され、プログラムの実行が停止します。
インクルードが失敗した場合、警告レベルのエラーのみが生成され、プログラムは実行を継続します。
include_once/require_once と include/require は同じ方法でエラーを処理します。
唯一の違いは、インクルードされるファイル コードがすでに存在する場合、そのコードはインクルードされなくなることです。
1.3 mysql4.0 から 4.1、PHP 4.x から 5.1 への大幅な改善など、PHP/Mysql のいくつかのバージョンの進化の歴史。
1.4 ヒアドックの概要
文字列を定義する方法。
構造:
<<<。プロンプトの後で、識別子 (別の行) を定義します。
それから新しい行。次は文字列そのものです
最後に、以前に定義した識別子を終了マーク (別の行) として使用します
注:
識別子の命名も、他のタグと同様に PHP ルールに準拠する必要があります:
文字、数字、アンダースコアのみを含めることができ、文字とアンダースコアで始める必要があります
1.5 PHP マジック メソッドをいくつか作成します;
__construct() は、クラスがインスタンス化されるときに自動的に呼び出されます。
__destruct() は、クラス オブジェクトが使用されるときに自動的に呼び出されます。
__set() は、未定義のプロパティに値を割り当てるときに呼び出されます。
未定義のプロパティを呼び出す場合は、__get() が呼び出されます。
__isset() は、 isset() または empty() 関数を使用するときに呼び出されます。
unset() を使用すると __unset() が呼び出されます。
__sleep() は、serialize を使用してシリアル化するときに呼び出されます。
__wakeup() は、unserialize を使用してデシリアライズするときに呼び出されます。
__call() は、存在しないメソッドを呼び出すときに呼び出されます。
__callStatic() は、存在しない静的メソッドを呼び出します。
__toString() は、オブジェクトを文字列に変換するときに呼び出されます。エコーなど。
__invoke() は、オブジェクトをメソッドとして呼び出そうとするときに呼び出されます。
__set_state() は、var_export() 関数を使用するときに呼び出されます。配列パラメータを受け入れます。
__clone() は、clone を使用してオブジェクトをコピーするときに呼び出されます。
1.6 phpのコンパイル時にパラメータを設定するものもあります
–prefix=/usr/local/php PHP インストールディレクトリ
–with-config-file-path=/usr/local/php/etc は php.ini の場所を指定します
–with-mysql=/usr/local/mysql mysql インストール ディレクトリ、mysql のサポート
–with-mysqli=/usr/local/mysql/bin/mysql_config mysqli ファイル ディレクトリ、最適化されたサポート
–enable-safe-mode セーフモードをオンにする
–enable-ftp FTP サポートをオンにします
–enable-zip zip のサポートをオンにします
–with-bz2 bz2 ファイルのサポートをオンにします
–with-jpeg-dir は jpeg 画像のサポートをオンにします
–with-png-dir は PNG 画像のサポートをオンにします
–with-freetype-dir は、freetype フォント ライブラリのサポートをオンにします
–without-iconv は、iconv 関数をオフにし、文字セット間で変換します
–with-libxml-dir は libxml2 ライブラリのサポートをオンにします
–with-xmlrpc は xml-rpc の C 言語を開きます
–with-zlib-dir は zlib ライブラリのサポートをオンにします
–with-gd は gd ライブラリのサポートをオンにします
./configure ヘルプを使用して詳細を表示できます
1.7 phpにパラメータを渡す3つの方法。
/*
* 方法 1 $argc $argv を使用する
* コマンドラインから実行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456
*/
// if ($argc > 1){
// print_r($argv);
// }
/**
* 運用結果
*
sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./getopt.php -f 123 -g 456
配列
(
[0] =>
[1] = & gt;
[2] = & gt;
[3] =>
[4] = & gt; 456]
)
*/
/*
* 方法2 getopt関数を使う()* コマンドラインから実行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456
*/
// $options = "f:g:";
// $opts = getopt( $options );
// print_r($opts);
/**
* 運用結果
*
配列
(
[F] = & gt;
[G] = >
)
*/
/*
* コマンドラインから /usr/local/php/bin/php ./getopt.php を実行します
*/fwrite(STDOUT, "名前を入力してください: ");
$name = トリム(fgets(STDIN));
fwrite(STDOUT, "こんにちは、$name!");
/**
* 行行結果
*
sync@MySUSE11:~/web_app/channel3/interface> /usr/local/php/bin/php ./getopt.php
名前を入力してください: フランシス
こんにちは、フランシス!
*/
1.8 (mysql) データ型の意味を書き留めてください (int char varchar datetime text) varchar と char の違いは何ですか;
int: 数値型
char: 固定長文字列型
varchar: 可変長文字列型
datetime: 期間時間型
varchar と char の違いは何ですか:
a. char の長さは固定されており、保存するデータの量に関係なく、常に固定長になります。
Varchar は可変長ですが、位置を格納するために使用される全長に 1 文字を追加する必要があります。
b. char は固定長であるため、処理速度は varchar よりもはるかに高速ですが、ストレージ領域を無駄にします。
したがって、ストレージは大きくないが速度が必要な場合は char 型を使用し、逆に varchar 型を使用してインスタンス化することができます。
1.9 error_reporting などのデバッグ関数の使用
error_reporting() 関数は、実行時に php.ini に error_reporting ディレクティブを設定できます。
したがって、表示されるエラー レベルはプログラム内でいつでも調整できます。
1.10 バージョン管理ソフトウェアを使用したことがありますか? 使用した場合、使用したバージョン管理ソフトウェアの名前は何ですか?
1.11 posix と perl の標準正規表現の違い;
1.12 セーフモードをオンにした後、どのエリアが制限されますか?
1.13 複数のプロセス/スレッドが同時にファイルを読み書きする問題を解決するコードを作成します。
PHP はマルチスレッドをサポートしていません。これを実現するには、PHP のフロック ロック機能を使用できます。$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 排他ロックを実行します
fwrite($fp, "ここに何かを書いてください");
flock($fp, LOCK_UN); // ロックを解除します
} その他 {
}
fclose($fp);
1.14 ファイルをアップロードするコードを記述します。
アップロード.html