この記事では、古典的な PHP 面接の質問をより詳細に分析します。皆さんの参考に共有してください。詳細は以下の通りです
インターネットで PHP の質問をいくつかしましたが、気づかないうちにここまでたどり着きました…参考のために回答を投稿します。
1. PHP を使用して、前日の時刻を 2006-5-10 22:21:21 の形式で出力します (2 点)
?
1
2
|
$a = date("Y-m-d H:i:s", strtotime("-1 日"));
print_r($a);
|
2. echo()、print()、print_r()の違い(3点)
echo と print は関数ではなく、言語構造です
int print(string $arg)、パラメータは 1 つだけ
echo arg1,arg2; は複数のパラメータを出力して void を返すことができます
echo と print は文字列のみを出力でき、構造体は出力できません
print_r は構造を出力できます
たとえば
?
1
2
|
$arr = array("キー"=>"値");
print_r($arr);
|
3. HTMLとPHPを使い分けできるテンプレート(1点)
賢い、phplib
4. バージョン管理に使用されるツールは何ですか? (1 点)
svn、git、CVS
5.文字列反転の実装方法(3つのポイント)
英語:
strrev($a)
中国語またはその他のテキスト:
中国語: GB2312、コードは GB2312 を使用してエンコードされています
?
1
2
3
4
5
6
7
8
9
10
11
12
|
関数リバース($str)
{
$ret = "";
len=mbstrwidth(str,"GB2312");
for(i=0;i
{
arr[]=mbsubstr(str, $i, 1, "GB2312");
}
return implode("", array_reverse($arr));
}
print_r(reverse("Hello"));
|
6. MYSQL データベースを最適化する方法。 (4 ポイント、さらに書くとさらに獲得)
文章的には:
1 インデックスを使用してクエリ効率を向上させます
2 クエリステートメントを最適化し、インデックスのヒット率を向上させます
関連するデータベース:
1 サブデータベースとテーブルを構築して、データベースのストレージと拡張機能を向上させます
2 必要に応じて別のストレージ エンジンを使用します
7. PHP の意味 (1 ポイントを獲得)
ハイパーテキスト前処理言語
ハイパーテキストプリプロセッサ
8. 現在時刻を取得するMYSQLの関数と日付をフォーマットする関数は何ですか?(2点)
?
1
2
3
|
CURRENT_TIMESTAMP()
DATE_FORMAT()
select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");
|
9. 中国語の文字列を文字化けせずにインターセプトする方法。 (3点)
?
1
|
mb_substr($str, 1, 1, "GB2312");
|
10. バージョン管理ソフトウェアを使用したことがありますか? (1 点)
svn
ギット
11. テンプレート エンジンを使用したことがありますか? (1 点)
賢い
12. 最も誇りに思っている開発作業を簡単に説明してください (4 点)
XXX
13. トラフィックが多い Web サイトの場合、トラフィックの問題を解決するためにどのような方法を使用しますか?(4 つのポイント)
1 キャッシュを有効活用してキャッシュヒット率を高めます
2 負荷分散を使用する
3 CDN を使用して静的ファイルを保存し、高速化します
データベースの使用量を削減する 4 つのアイデア
5 統計上のボトルネックがどこにあるのかを確認します
14. PHPを使用して、クライアントIPとサーバーIPを表示するコードを記述します(1点)
$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]
15. include ステートメントと require ステートメントの違いは何ですか? 同じファイルを複数回インクルードすることを避けるために、それらを (2 点) ステートメントに置き換えます。
失敗時:
include は警告を生成しますが、require はエラー割り込みを直接生成します
require は実行前にロードされます
インクルードは実行時にロードされます
一回だけ必要
include_once
16.SESSIONの生存時間(1分)を変更する方法
session_set_cookie_params
17. PHP研究所のホームページのようなアドレスがあります: http://www.jb51.net/index.html そのコンテンツ(1ドルポイント)を入手するにはどうすればよいですか?
file_get_contents
カール
18. HTTP 1.0 では、ステータス コード 401 の意味は (?)、プロンプト「ファイルが見つかりません」が返された場合、そのステートメントは (?) です。
無許可
?
1
header("HTTP/1.0 404 が見つかりません");
|
|
高速 CGI:
?
1
header("ステータス: 404 見つかりません");
|
|
19. PHP では、ヒアドキュメントは特殊な文字列であり、その終了マークは次のようになります。(1 ポイント)
ペアで登場
?
1
2
3
$a = <
| 良いテスト
EOD;
|
20.asp、php、jspの長所と短所について話します(1点)
ASP は IIS に依存する必要があり、Microsoft によって開発された言語です
PHP と JSP は、Apache や nginx などの他のサーバーに依存できます
21. mvc についての理解について話します (1 点)
モデル: データ構造層
ビュー:
を表示
制御: 入力を受信して判断して処理します
22. 次の表を使用して、最も投稿数の多い 10 人の名前の SQL を作成します: メンバー (ID、ユーザー名、投稿、パス、電子メール) (2 点)
メンバーからトップ10のID、ユーザー名を選択 投稿の説明で注文
23. PHPにおける値渡しと参照渡しの違いを説明してください。いつ値で渡すのか、いつ参照で渡すのか (2 点)
& は参照を渡すことを意味します
関数内でパラメータを参照渡しするとパラメータが変更されます
一般に、複数の出力パラメーターがある場合は、参照の使用を検討できます
24. PHPのerror_reportingの機能とは何ですか?(1点)
エラーの表示レベルを設定します
25. メールの形式が正しいかどうかを検証する関数を書いてください(2点)
?
1
2
3
$str = "jianfeng@126.com";
| regex="([a−z0−9.−]+)@([da−z.−]+).([a−z.]2,6)" //通常
preg_match(regex,str)を返す
26. 取得したパラメータを含む、現在の実行スクリプトのパスを取得する方法を簡単に説明します。 (2点)
$argc -- パラメータの数を取得します
$argv --パラメータリストを取得します
27.SESSIONの生存時間を変更する方法(1点)
session_set_cookie_params
28. JSフォームでダイアログボックスをポップアップさせる関数とは何ですか?(2点)
アラート()
確認()
プロンプト()
フォーカス()
29. JSのリダイレクト機能とは何ですか?(2点)
?
1
2
|
window.location.href="#"
<スクリプト src="#">
|
30. foo() と @foo() の違いは何ですか? (1 点)
@ はすべての警告を表し、無視されます
31. メソッドと属性なしで「myclass」という名前のクラスを宣言する方法 (1 点)
?
32.「myclass」という名前のオブジェクトをインスタンス化する方法 (1 点)
?
1
|
$myclass = 新しい myclass();
|
33. クラスの属性にアクセスして設定するにはどうすればよいですか? (2 点)
?
1
2
3
4
5
6
7
8
|
クラスA
{
パブリック $name = "A";
}
$a = 新しい A();
n=a->名前;
print_r($n);
|
34. mysql_fetch_row() と mysql_fetch_array の違いは何ですか? (1 点)
mysql_fetch_array() は mysql_fetch_row() の拡張バージョンです。データを数値インデックスとして配列に保存するだけでなく、フィールド名をキーとして使用して、データを連想インデックスとして保存することもできます。
?
1
2
3
4
5
6
7
8
9
|
mysql_connect("localhost", "mysql_user", "mysql_password") または
die("接続できませんでした: " .mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while (row=mysqlfetchharray(result, MYSQL_ASSOC)) {
printf ("ID: %s 名前: %s", row["id"],row["name"]);
}
mysql_free_result($result);
|
35. GD ライブラリは何に使用されますか? (1 点)
動的オープン画像処理ライブラリ
36. PHP に HTML コードを入力するいくつかの方法を指摘します。 (1点)
?
1
2
3
4
|
エコー「{html}」
エコー <
{html}
EOD;
|
37. ファイルを開いて読み書きできる関数はどれですか? (1 点) c
(a) fget() (b) file_open() (c) fopen() (d) open_file()
38. ユーザー配列に john を追加しないオプションはどれですか? (1 点) b
(a) $users[] = 'ジョン';
(b) array_add($users,'john');
(c) array_push($users,‘john’);
(d) $users ||= ‘ジョン’;
39. 次のプログラムが入力されますか? (1 点) 10
?
1
2
3
4
5
6
7
|
$num = 10;
乗算関数(){
num=num * 10;
}
乗算();
$num をエコー;
?>
|
40. PHP を使用して、「Zhang San」という名前のすべてのコンテンツを検索し、出力する簡単なクエリを作成します (2 ポイント)
テーブル名 ユーザー名 電話番号 内容 日付
張三 13333663366 2006-10-11 大学卒業
張三 13612312331 学士 2006-10-15
Zhang Si 021-55665566 2006-10-15工業高校卒業
上記の質問に従ってコードを完成させてください:
?
1
2
3
4
5
6
7
8
9
10
11
12
|
$mysql_db=mysql_connect("ローカル","ルート","パス");
@mysql_select_db("DB",$mysql_db);
$sql = sprintf("select * from %s where UserName = '%s'",
"テーブル名",
「张三」);
values=mysqlquery(sql);
while(item=mysqlfetchqueryarray(values))
{
echo sprintf("ユーザー名: %s、電話番号 %s、学歴: %s、卒業日: %s",
item['ユーザー名']、アイテム['電話番号']、アイテム['コンテンツ']、アイテム['日付']
);
}
|
41. 次のクラスの使い方とその意味を説明します。
?
1
2
3
4
5
6
7
8
9
|
クラステスト{
関数 Get_test($num){
num=md5(md5(num)."En");
$num を返します;
}
}
$test = 新しいテスト();
ret=test->Get_test(11);
print_r($ret);終了;
|
numをMD5エンコードした後に生成される32ビット文字列a1を「En」で接続し、再度MD5エンコードを行う
42. SQL ステートメントの形式を記述します: 挿入、更新、削除 (4 ポイント)
テーブル名 ユーザー名 電話番号 内容 日付
張三 13333663366 2006-10-11 大学卒業
張三 13612312331 学士 2006-10-15
Zhang Si 021-55665566 2006-10-15工業高校卒業
(a) 新しいレコードがあります (Xiao Wang 13254748547 高校卒業 2007-05-06) SQL ステートメントを使用してテーブルに追加してください。
テーブル名の値に挿入します('Xiao Wang', '13254748547', '高校卒業', '2007-05-06')
(b) SQL ステートメントを使用して、Zhang San の時間を現在のシステム時間に更新してください
テーブル名を更新 set Date = GETDATE() where UserName = "Zhang San"
(c) Zhang Si という名前のすべての記録を削除するよう書き込んでください
削除元は UserName = "张思" の場所を示します
43. データ型の意味を書いてください(int char varchar datetime text) varchar と char の違いは何ですか (2 点)。
int整数型
固定長の文字ストレージ
varchar ストレージの可変長
日時時間
テキストは可変長を保存します
varchar は可変長です
char(20) 固定長
44. MySQ 自動インクリメント タイプ (通常はテーブル ID フィールド) を (?) フィールド (1 ポイント) に設定する必要があります
自動インクリメント
45. 以下のプログラムの出力結果を書いてください(1点)
?
1
2
3
4
|
$b=201;
$c=40;
a=b>$c?4:5;
$aをエコー;
|
46. 変数が設定されているかどうかを検出する関数はありますか? (2 点)
isset()
空()
47. クエリ結果セットの総数を取得する関数とは何ですか(1点)
?
48. $arr = array('james', 'tom', 'symfony'); 最初の要素 (1 ポイント) の値を出力してください。
?
1
2
3
4
print_r($arr[0]); |
リセット($arr);
print_r(current($arr));
print_r(array_shift($arr));
|
49. 質問41の配列値を「,」記号で区切って文字列出力(1点)に結合してください。
爆裂
50. a='abcdef'; aの値を取り出して最初の文字(1点)を出力してください。
?
1
2
$a[0];
substr($a, 0, 1); |
|
51. PHPはSQLサーバー/oracleなどのデータベースに接続できますか? (1点)
はい
既製のライブラリがあります
52. PHP5のパーミッション制御修飾子を書いてください(3点)
公開
プライベート
保護されました
53. php5のコンストラクタとデストラクタを書いてください(2点)
?
1
2
3
4
5
6
パブリック関数 __construct()
{ |
}
パブリック関数 __destruct()
{
}
プログラミングに関する質問:
1. 標準 URL からファイル拡張子をできるだけ効率的に取得する関数を作成します
例: http://www.sina.com.cn/abc/de/fg.php?id=1 php または .php を削除する必要があります。
?
1
2
3
4
5
|
$url = "http://www.sina.com.cn/abc/de/fg.php?id=1";
arr=parseurl(url);
pathArr=pathinfo(arr['path']);
print_r($pathArr['extension']);
|
3. 2 つのファイルの相対パスを計算する関数を作成します
$a = '/a/b/c/d/e.php'; など
$b = '/a/b/12/34/c.php';
a に対する b の相対パスを計算すると、 http://www.jb51.net/12/34/c.php が追加されます
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//conpath からの相対パスを取得します
関数 sGetRelativePath(path,conpath)
{
pathArr=explode("/",path);
conpathArr=explode("/",conpath);
$dismatchlen = 0;
for(i=0;i < count(pathArr);i++)
{
if(conpathArr[i] != pathArr[i])
{
dismatchlen=count(pathArr) - $i;
arrLeft=arrayslice(pathArr, $i);
休憩;
}
}
ret=strrepeat("../",dismatchlen).implode("/", $arrLeft);
$ret を返す;
}
print_r(sGetRelativePath(b,a));
|
3. フォルダー内のすべてのファイルとサブフォルダーを走査できる関数を作成します。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
関数 aGetAllFile($folder)
{
$aFileArr = array();
if(is_dir($folder))
{
ハンドル=opendir(フォルダー);
while((file=readdir(ハンドル)) !== false)
{
//「はい」または「..」の場合はスキップします
if(file=="."||file == "..")
{
続き;
}
if(is_file(フォルダ."/".ファイル))
{
aFileArr[]=ファイル;
}
else if(is_dir(folder."/".file))
{
aFileArr[ファイル] = aGetAllFile(フォルダー."/".ファイル);
}
}
closedir($handle);
}
$aFileArr を返す;
}
$path = "/home/test/sql";
print_r(aGetAllFile($path));
|
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/970757.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/970757.html技術記事古典的な PHP 面接の質問集 この記事では、主に PHP 面接の一般的な質問と関連する参考回答をまとめて紹介します。
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31
|