ホームページ >バックエンド開発 >PHPチュートリアル >最も完全かつ詳細な PHP 面接の質問 (回答付き)

最も完全かつ詳細な PHP 面接の質問 (回答付き)

不言
不言オリジナル
2018-05-14 14:24:04162266ブラウズ

この記事では、最も完全で詳細な PHP 面接の質問 (回答付き) を紹介します。必要な友人は参考にしてください。

2019 年の PHP 面接の質問の概要。 (コレクション)

1. __FILE__ とはどういう意味ですか? (5 点)

ファイルのフルパスとファイル名。インクルード ファイルで使用された場合は、インクルード ファイル名を返します。 PHP 4.0.2 以降、__FILE__ には常に絶対パスが含まれますが、以前のバージョンには相対パスが含まれる場合がありました。

2. クライアントの IP アドレスを取得するには? (5 点)

$_SERVER[‘REMOTE_ADDR’]

3. header 関数を使用してページにジャンプするステートメントを作成します(5 点)

Header(‘location:index.php’);

4. $str は HTML テキストの一部であり、正規表現を使用してすべての JS スクリプトを削除します。 (5 点) )

$pattern = ‘/<script.*>\.+<\/script>/’;
Preg_replace($pattern,’’,$str);

5. 配列内の null 値を削除するステートメントを作成します (5 点)

$arr = array(‘’,1,2,3,’’,19);

最初のメソッド:

$array1 = array(&#39;  &#39;,1,&#39;&#39;,2,3);
print_r(array_filter($array1, "del"));
function del($var)
{
       return(trim($var)); 
}

2 番目のメソッド:

$arr=array("",1,2,3,"");
$ptn="/\S+/i";
print_r(preg_grep($ptn,$arr));

6. out get 現在のタイムスタンプの関数と前日の時刻を出力する方法(形式:年-月-日 時:分:秒) (5分)

Time();
Date(“Y-m-d H:i:s”,Strtotime(“-1 day”));

7にエンコード変換の関数を書きます。 PHP (5分)

Iconv(‘utf-8’,’gb2312’,$str);

8, $str = "1,3,5,7,9,10,20", 文字列 str を各数値を含む配列に変換するにはどのような関数を使用できますか? (5 点)

$arr = explode(“,”,$str);

9. Serialize() / unserialize() 関数の役割 (5 点)

serialize() と unserialize() は PHP マニュアルで説明されています:

serialize - 保存可能な値を生成することを示します。戻り値は文字列です。この文字列には、型と構造を失うことなく値を表すバイト ストリームが含まれており、どこにでも保存できます。
unserialize — 保存された表現から PHP 値を作成します
具体的な使用法:

$arr = array(“测试1″,”测试2″,”测试3″);//数组
$sarr = serialize($arr);//产生一个可存储的值(用于存储)

//任意のメソッドを使用して保存された値を取得します (例: $sarr をテキスト ファイルに保存した場合、file_get_contents を使用して取得できます) $newarr; に保存します。

$unsarr=unserialize($newarr);//从已存储的表示中创建 PHP 的值

10. 年と月をパラメータとして関数を書きます。出力結果は指定された月の日数です (5 ポイント)

Function day_count($year,$month){
Echo date(“t”,strtotime($year.”-”.$month.”-1”));
}

11。ファイルは /wwwroot/include/ page.class.php で、ファイル拡張子を取得するメソッドを記述します (5 点)

$arr = pathinfo(“/wwwroot/include/page.class.php”);
$str = substr($arr[‘basename’],strrpos($arr[‘basename’],’.’));

12. どの PHP テンプレート エンジンを使用しましたか? (5 点)

thinkphp に付属のテンプレート エンジンである Smarty

13. クラスを作成し、このクラスをインスタンス化し、クラスのプロパティとメソッドを呼び出すステートメントを作成してください (5 点)

Class myclass{
Public $aaa;
Public $bbb;
Public function myfun(){
Echo “this is my function”;
}
}
$myclass = new myclass();
$myclass->$aaa;
$myclass->myfun();

14。テーブル friends は mysql データベース db_test に作成されています。データベース接続ユーザーは root で、パスワードは 123 です。friend テーブルのフィールドは、id、名前、年齢、性別、電話番号、電子メールです。mysql に接続するには php を使用してください。 > 友人テーブルの年齢を選択し、20 件のすべてのレコードの結果を出力し、クエリ結果の合計数をカウントします。 (5点)

<?php
$link = Mysql_connect(“localhost”,”root”,”123”) or die(“数据库连接失败!”);
Mysql_select_db(“db_test”,$link) or die(“选择数据库失败!”);
$sql = “select id,name,age,gender,phone,email from friend where age>20”;
$result = mysql_query($sql);
$count = mysql_num_rows($result);
While($row = mysql_fetch_assoc($result)){
Echo $row[‘id’];
….
}

15. 以下に2つのテーブルがあります
ユーザーテーブルのフィールドID(int)、名前(varchar)
スコアテーブルのフィールドuid(int)、件名(varchar)、スコア(int)

スコアテーブルuidフィールドはユーザーテーブルのidフィールドと関連付けられます

以下のSQL文を記述する必要があります
1)ユーザーテーブルに新規レコードを挿入し、スコアテーブルに新規追加レコードに関連付けられたレコードを2つ挿入します(5点)
2) スコア テーブル内の uid 2 のユーザーの最高スコア レコードを 5 つ取得します (5 ポイント)
3) 共同クエリを使用して、「Zhang San」という名前のユーザーの合計スコアを取得します (5 ポイント)
4)スコア レコードを含む "Li "Four" ユーザーの名前を削除します (5 ポイント)
5) スコア テーブルをクリアします (5 ポイント)
6) ユーザー テーブルを削除します (5 ポイント)

1). mysql_query(“insert into user(name) values(‘test’)”);
$id = mysql_insert_id();
Mysql_query(“insert into score(uid,subjext,score) values(“.$id.”,’english’,’99’)”);
2).$sql = select uid,sunjext,score from score where uid=2 order by score desc limit 0,5;
3).select s.score from score s RIGHT JOIN user u ON u.id=s.uid where u.name=’张三;
4).delete from score where uid in(select id from user where name=’李四’);
Delete from user where name=’李四’;
5).delete from score;
6).drop table user;

関連する推奨事項:

phpインタビューの質問 8 つ innoDB と myisam の違い

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。