PHP2017 最新版面接の質問(回答付き)

php中世界最好的语言
リリース: 2023-03-17 15:56:02
オリジナル
1654 人が閲覧しました

多くの友人が PHP の面接の質問を求めているのを見て、あなたのために面接の質問をいくつか集めました。これらはすべて 2017 年の最新の質問です。あなたのスキル向上に役立つことを願っています。また、働きたい会社に就職できることを願っています。

この記事では、2017 年の最新の PHP 面接の質問をより詳細に収集して分析しています。皆さんの参考に共有してください。詳細は次のとおりです。


1. PHP を使用して、前日の時刻を 2006-5-10 22:21:21 (2 ポイント)

$a = date(" の形式で出力します。 Y-m-d H:i:s", strtotime ("-1 day"));

print_r($a);

2. echo(),print(),print_r()の違い(3点)

echo と print は同じ関数ではなく、言語構造です

int print(string $arg)、パラメーターは 1 つだけです

echo arg1、arg2 は複数のパラメーターを出力し、void を返すことができます

echo と print はのみ可能です構造体ではなく文字列を出力します

print_r は構造体を出力できます

たとえば

$arr = array("key"=>"value");

print_r($arr);

3 . HTML と PHP を別々に使用できるようにするテンプレート (1 点)

smarty、phplib


4. バージョン管理に使用されるツールは何ですか? (1 点)

svn、git、cvs


5. 文字列反転を実現する方法 (3 点)

英語:

strrev($a)

中国語またはその他のテキスト:

中国語: GB2312、コードは GB2312 を使用してエンコードされます

関数 reverse($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 点)

CURRENT_TIMESTAMP()

DATE_FORMAT()

select DATE_FORMAT("2011-11-21 10:10:10 ", "%Y- %m-%d");

9. 中国語のテキスト文字列を文字化けせずにインターセプトする方法。 (3 点)

mb_substr($str, 1, 1, "GB2312");

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

svn

git


11. テンプレート エンジンを使用したことがありますか? (1 点)

smarty


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は実行前にロードされます

includeは実行時にロードされます

require_once

include_once

16. SESSIONの生存時間を変更する方法(1点).


session_set_cookie_params

17があります。 PHP研究所のホームページなどのWebページアドレス: http://www.jb51.net/index.html、そのコンテンツを取得するには($1ポイント)


file_get_contents

curl

18. HTTP 1.0 では、ステータス コード 401 の意味は (?) です。「ファイルが見つかりません」というプロンプトが返された場合、ヘッダー関数を使用できます。そのステートメントは (?) です


。 Unauthorized

header("HTTP/1.0 404 Not Found");

fast CGI Medium:

header("Status: 404 Not Found");

19. PHP では、ヒアドキュメントは特別な文字列です。そのエンドマークは必ず必要ですか?(1 ポイント)

ペアで表示されます

$a = <

良いテストです

EOD;

20 asp、php、jsp の長所と短所について話します。 (1 点)

asp は IIS に依存する必要があり、Microsoft によって開発された言語です

php と jsp は、Apache や nginx などの他のサーバーに依存できます

21. mvc についての理解について話します (1 点) )


model:データ構造層

view:display

control:受付・判定処理

22と入力し、投稿数の多い10人の名前のSQLを書き、次の表を使用します: members (ID、ユーザー名、投稿、パス、メールアドレス) (2ポイント)

投稿の順にメンバーからトップ10のID、ユーザー名を選択


23. phpで値を渡すことと参照を渡すことの違いを説明してください。いつ値渡しするのか、いつ参照渡しするのか (2​​ 点)

& は参照渡しを意味します

関数内のパラメーターを参照渡しするとパラメーターが変更されます

一般に、複数の出力がある場合は参照の使用を検討できます。パラメータ


24. PHPの

error_reportingの関数とは何ですか? (1点)

エラーの表示レベルを設定します


25.メールアドレスは正しいです (2 ポイント)

$str = "jianfeng@126.com";

regex="([a−z0−9.−]+)@([da−z.−]+).( [a−z.]2, 6)" ; //通常

return preg_match(regex,str)

26. 取得したパラメータを含む、現在の実行スクリプトのパスを取得する方法を簡単に説明します。 (2点)

$argc --パラメータの数を取得

$argv --パラメータリストを取得


27. SESSIONの生存時間を変更する方法(1点)

session_set_cookie_params


28. JSフォームのポップアップダイアログボックス機能とは何ですか? (2点)

alert()

promopt()

focus()

29. JSのリダイレクト機能は?外部JSファイルを導入するには?(2点)

window.location.href="#"

30、foo() と @foo() の違いは何ですか? (1 点)

@ はすべての警告を表し、

31 を宣言する方法。メソッドと属性のない「myclass」という名前のクラス? (1 点)

class myclass

{

}

32. 「myclass」という名前のオブジェクトをインスタンス化する方法 (1 点)

$myclass = new myclass();

33. クラスの属性にアクセスして設定するにはどうすればよいですか? (2 点)

class A

{

public $name = "A";

}

$a = new A();

n= a->name;

print_r($n);

34、

mysql_fetch_row

() と

mysql_fetch_array

の違いは何ですか? (1点)

mysql_fetch_array()はmysql_fetch_row()の拡張版です。データを数値インデックスとして配列に保存するだけでなく、フィールド名をキーとして使用して、データを連想インデックスとして保存することもできます。

mysql_connect("localhost", "mysql_user", "mysql_password") or

die("接続できませんでした: " .mysql_error());

mysql_select_db

("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while (row=mysqlfetcharray(result, MYSQL_ASSOC)) {

printf ("ID: %s 名前: %s", row["id "],row["name"]);

}

mysql_free_result

($result);

35. GD ライブラリは何に使用されますか? (1 点)

動的オープニング画像処理ライブラリ

36. PHP に HTML コードを入力するいくつかの方法を指摘します。 (1 点)

echo "{html}"

echo <

{html}

EOD;

37. ファイルを読み書きできる関数は次のうちどれですか? ? (1 点) c

(a) fget() (b) file_open() (c) fopen() (d) open_file()

38. 次のオプションのうち、john を追加しないものはどれですか。ユーザー配列? (1 点) b

(a) $users[] = 'john';

(b) array_add($users,'john');

(c) array_push($users,' john') ;

(d) $users ||= 'john';

39. 次のプログラムは (1 点) 10

$num = 10;


関数 multiply(){ を入力しますか?

num=num * 10;

}

multiply();

echo $num;

?>

40 という名前のすべての人物を検索する簡単なクエリを作成します。 San」の内容を記載して印刷してください(2点)

テーブル名 UserName Tel Content Date


Zhang San 13333663366 大卒 2006-10-11 Zhang San 13612312331 学部卒業 2006-10-15 Zhang Si 021-5566556 6 技術系卒業中学校 2006-10-15

上記の質問に従ってコードを完成させてください:

$mysql_db=mysql_connect("local","root","pass");

@mysql_select_db("DB",$mysql_db) );

$sql = sprintf("select * from %s where UserName = '%s'",

"テーブル名",

"Zhang San");

values=mysqlquery(sql);

while(item= mysqlfetchqueryarray(values))

{

echo sprintf("ユーザー名: %s、電話番号 %s、学歴: %s、卒業日: %s",

item['ユーザー名'],item ['Tel' ], item['Content'], item['Date']

);

}

41. 次のクラスの使い方とその意味を説明します(3)

クラステスト{

function Get_test($num){

num=md5(md5(num)."En");

return $num;

}

}

$test = new test() ;

ret=test->Get_test(11);

print_r($ret);exit;

numをMD5エンコードした後に生成される32ビット文字列a1を「En」に接続し、再度MD5コーディングを行う


42. SQL文の形式を書く:挿入、更新、削除(4点)

テーブル名UserNameTelContentDate

张三13333663366 大卒2006-10-11

张三136123123 31 2006-10-15卒業

Zhang Si 021-55665566 工業中等学校卒業 2006-10-15

(a) 新しいレコードがあります (Xiao Wang 13254748547 高校卒業 2007-05-06) SQL ステートメントを使用してください。テーブルに追加するには

insert into table name names('Xiao Wang', '13254748547', 'High School Graduation', '2007-05-06')

(b) SQL ステートメントを使用して Zhang San のデータを更新してください現在のシステム時間までの時間を

テーブル名を更新します Date = GETDATE() where UserName = "Zhang San"

(c) Zhang Si という名前のすべてのレコードを削除するように書き込んでください

delete from show where UserName = "Zhang Si"


43. データ型の意味を書いてください(int char varchar datetime text) varcharとcharの違いは何ですか(2点)

int整数型

charストレージ固定長

varcharストレージ可変長

datetime time

text は可変長を格納します

varchar は可変長

char(20) 固定長


44 に設定する必要があります。MySQ 自動インクリメント タイプ (通常はテーブル ID フィールド) は (? ) フィールド (1 点) )

auto_increment


45. 次のプログラムの出力を書き込みます (1 点)

$b=201;

$c=40;

a=b>$c ?4:5;

echo $a;


46. 変数が設定されているかどうかを検出する関数はありますか?(2点)

isset()

empty()

47. 結果セットの総数をクエリする関数は何ですか? (1 点)

mysql_num_rows()


48, $arr = array('james', 'tom', 'symfony'); 最初の要素の値 (1 ポイント) を出力してください


print_r($arr[0]);

reset($arr);

print_r(current($arr) ));

print_r(array_shift($arr));

49. 質問41の配列の値を','で区切って文字列出力(1点)にマージしてください

implode


50. a='abcdef'; aの値を取り出して、最初の文字(1点)を出力してください

$a[0];

substr($a, 0, 1) ;

51. PHPはSQLサーバー/oracleなどのデータベースに接続できますか?(1点)

はい

既製のライブラリがあります


52。 modifier(3点)

public

private

protected


53.php5のコンストラクタとデストラクタを書き出してください(2点)


public functionconstruct()

{

}

public function destruct()

{

}


プログラミングの質問:


1. 標準 URL からファイル拡張子をできるだけ効率的に抽出する関数を作成します

例: http://www.sina.com.cn/abc/de /fg.php?id=1 php または .php


$url = " を削除する必要があります。 http://www.sina.com.cn/abc/de/fg.php ?id=1";

arr=parseurl(url);

pathArr=pathinfo(arr['path']);

print_r($pathArr['extension']);


3 . $a = '/a/b/c/d/e など、2 つのファイルの相対パスを計算する関数を作成します。 php';

$b = '/a/b/12/34/c.php';

a に対する b の相対パスが http://www.jb51.net/12/34 であることを計算します。 /c.php は追加します

$a = '/ a/b/c/d/e.php';

$b = '/a/b/12/34/c .php';

//conpathを基準としたパスの相対パスを取得

function 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);

Break;

}

}

ret=strrepeat("../",dismatchlen)。 implode("/", $arrLeft);

return $ret;

}

print_r (sGetRelativePath(b,a));

3. すべてのファイルとサブフォルダーを走査できる関数を作成します。フォルダー内にあります。


function aGetAllFile($folder)

{

$aFileArr = array();

if(is_dir($folder))

{

handle=opendir(folder);

while((file=readdir(handle)) !== false)

{

// または...の場合は、

if(file=="."||file == ". .")

{

続行;

}

if(is_file(folder."/".file))

{

aFileArr[]=file;

}

else if(is_dir(folder."/".file))

{

aFileArr[file] = aGetAllFile(folder."/".file);

}

}

Closedir($handle);

}

return $aFileArr;

}

$path = "/home/test/sql";

print_r(aGetAllFile($path));

上記は私が集めた最新の面接の質問と回答であり、誰にとっても役に立つかもしれません。

関連書籍:

2017 年の一般的な PHP 面接の質問と回答テクニック

8 つの PHP 面接の質問は、PHP についての理解を反映しています

PHP の面接質問における筆記試験の質問の概要

以上がPHP2017 最新版面接の質問(回答付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!