ホームページ >バックエンド開発 >PHPチュートリアル >PHP 面接の質問セット、私の回答と分析付き (1)_PHP チュートリアル

PHP 面接の質問セット、私の回答と分析付き (1)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:00:22858ブラウズ

インタビューの質問 1
1. PHP を使用して、前日の時刻を 2006-5-10 22:21:21 の形式で出力します
2. echo()、print()、print_r() の違い
3. . HTMLとPHPを分離できる テンプレートを開いて使用します
4. PHPとJSPの連携を実現するには?
5. バージョン管理にはどのようなツールが使用されますか?
6. 文字列の反転を実現するには?
7. MYSQL データベースを最適化する方法。
8. トランザクション処理について話しましょう
9. Apache+mysql+php で最大負荷を達成する方法
10. 文字化けせずに中国語の文字列をインターセプトする方法

答え:

1.echo date('Y-m-d H:i:s', strtotime('-1 day'));

2.echo は戻り値のない言語構造です。 echo と同じです。違いは、print が戻り値を持つ関数であることです。print_r は再帰的印刷であり、配列オブジェクトを出力するために使用されます

3。実際、PHP 自体がテンプレート エンジンであり、私は Smarty を使用しました。 PHPLib は一般的なもので、Savant にはテンプレート エンジンのリストがあります: http://www.sitepoint.com/forums/showthread.php?t=123769

4. タイトルは少し曖昧です。 、ソケット関数、および CURL はすべて実装できます。PHP と Java の統合をテストしている場合、PHP にはこの組み込みメカニズムがあります (PHP と .NET の統合をテストしている場合は、これに答えることもできます)。例: $foo = new Java('java.lang.System');

5. CVS と SVN は、次世代の CVS として知られており、強力な機能を備えています。私は常に SVN を使用してきました。問題は、どのツールを使用するかということです。Apache 上の CVS サーバーをサーバーとして使用し、Apache 上の WinCVS をクライアントとして使用します。 DAV がサーバーとして使用され、TortoiseSVN がクライアントとして使用されます。

6. strrev 関数を使用します。組み込みの PHP の使用が許可されていない場合は、自分で記述します。関数 strrev($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;

7. 大学入試の政治問題について、私の答えは次のとおりです:
(1)。適切に構造化されたデータベースを設計するのは DBA とアーキテクトの責任です。必要に応じて非正規化し、部分的なデータの冗長性を許可し、クエリを改善するために JOIN 操作を避けます。効率
(2)。システム アーキテクチャ設計の観点から、テーブル ハッシュは、大量のデータを複数の異なるテーブルにハッシュするために使用され、高速テーブルには最新のデータのみが保持され、低速テーブルには履歴が保存されます。クラスター、メインサーバー 読み取りおよび書き込み、サーバーからの読み取り専用、または N サーバー、各マシンは相互のマスターになります
(3) (1) と (2) は、PHP プログラマーの要件を超えます。インデックスが少ないかどうかを確認します
(4)。効率的な SQL ステートメントを作成し、デカルト積を生成する完全結合や多数の Group By や order by などの非効率な SQL ステートメントがないかどうかを確認します。 、制限なしなど、必要に応じて追加します。 データベースロジックは DBMS 側のストアドプロシージャにカプセル化され、各 SQL ステートメントが説明されます。
(5) から必要なデータのみが取得されます。記事のコメント数をクエリする場合など、データベースでは、 select count(*) ... where Article_id = ? それだけです。最初に * を選択しないでください ... where Article_id = ? を選択してから msql_num_rows のみを送信します。たとえば、記事を変更する場合、ユーザーがタイトルのみを変更する場合は、 ..set title = ? where Article_id = ?Don't set content = ?(大きいテキスト) を使用します。たとえば、InnoDB はデッドロックを軽減し、クエリ速度を 1 桁向上させることができます

8。すべてのプログラミング言語が Hello World に対応する例を備えているのと同様に、このデータベースの教科書も同様です。 A が B の口座に 50 ドルを送金する例についてですが、私の知る限り、MySQL を使用してトランザクション処理を実装する企業はほとんどありません。質問 7 の答えを参照してください。それが完了すれば、この問題は解決します

10. ははは、質問者は長い間、substr の中国語処理の問題に悩まされていたのでしょうか。インターネット上で流通している、正規表現を使用して中国語の文字を照合し、それを傍受する関数も使用してみてはいかがでしょうか。実際、非常に簡単な解決策があります。 mb_substr()

インタビューの質問 2
var $empty = ''; null = NULL;
var $notSet;
$a = "hello"; ;
$b = "世界";
$a = 1;
$b = $a++; .
$x = empty($array);
$x とは何ですか?


4. バージョン管理ソフトウェアを使用したことがありますか?

5. テンプレート エンジンを使用したことがありますか? 使用したテンプレート エンジンの名前を教えてください。

7.トラフィックが多い場合、トラフィックの問題を解決するにはどのような方法を使用しますか?

8. PHP を使用して、クライアント IP とサーバー IP を表示するコードを記述します。

答えはブログが更新されたら書かれます

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317109.html技術記事インタビューの質問 1 1. PHP を使用して、前日の時刻を 2006-5-1022:21:21 の形式で出力します。 2. echo()、print()、および print_r() の違い 3. テンプレートHTML や PHP 4 とは別に使用できます。 PHP の実装方法...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。