最近處於失業狀態@_@, 這段時間找工做挺不如意的,我偶爾看到這家公司的招聘以爲挺有意思,他們有專門的招聘網站,讓面試者在線作題,因而我就去試了一下,最終結果不盡人意,沒能接到面試通知,我把作題的答案粘出來,若是有人看到,但願能夠指正一二,萬分感謝。php
(\$\d,?\d+\.?\d+)|(\$\d+)
class User
{
public $name = "kingmax";
private $_age = 30;
public function publics()
{
//wait for your implement
}
}
$User = new User();
$data = $User->publics();
print_r($data);
複製代碼
以上例程會輸出:mysql
Array
(
[name] => kingmax
)
複製代碼
請實現publics方法。要求能夠把publics這個方法封裝在trait裏面,全部類通用。【加分提示:不直接使用反射類可加分】面試
<?php
class User
{
public $name = "kingmax";
public $sex = "man";
private $_age = 30;
public function publics()
{
//wait for your implement
}
}
trait UserReturnInfo
{
public function publics()
{
$data = [];
//有三種實現方法,分別是經過get_object_vars(),foreach和反射,其中反射須要手動篩選public屬性
//第一種:get_object_vars()
$vars = get_object_vars($this);
foreach ($vars as $k => $v) {
$data[$k] = $v;
}
return $data;
//第二種:foreach()
// foreach ($this as $k => $v) {
// $data[$k] = $v;
// }
// return $data;
//第三種 反射
// $reflectionClass = new ReflectionClass('User');
// $props = $reflectionClass->getDefaultProperties();
// $userObj = new User();
// foreach ($props as $key => $val){
// $rp = new ReflectionProperty($userObj,$key);
// if ($rp->isPublic()){
// $data[$key] = $val;
// }
// }
// return $data;
}
}
class UserReturnInfoMethod extends User
{
use UserReturnInfo;
/* ... */
}
$User = new UserReturnInfoMethod();
$data = $User->publics();
print_r($data);
複製代碼
db.col.find(
{
"$and":[
{
"title":{$ne:"mysql 教程"}
},
{
"title":{$ne:"php 教程"}
}
]
}
)
複製代碼
<?php
// 請設計一個登陸類LoginHelper,用來處理用戶的登陸(login方法)、註銷(logout方法)流程。【加分提示:儘量使用最新流行的設計模式和軟件工程規範
//假設登陸須要 用戶名,密碼和驗證碼,密碼採用廣泛的md5+鹽值的形式,鹽值存在庫
//如下, 僞代碼
class LoginHelper
{
public function login()
{
//1. 接受參數(同時要過濾和驗證合法性,驗證能夠獨立封裝成一個驗證類)
//2. 將傳過來的密碼經過預先定義好的方式加密而後和數據庫密碼比對,
//正確,登陸成功,存下session,記錄日誌,跳轉相應頁面;
//錯誤,登陸失敗,記錄日誌, 跳轉登陸頁。
//其中,數據庫的實例化使用單例模式,始終new出來的都只是同一個類;每個動做執行以前都應該先判斷是否存有session,這個能夠寫在一個基類裏,該類繼承基類,用構造方法實現
}
public function logout()
{
//1. 接受參數(同時要過濾和驗證合法性,驗證能夠獨立封裝成一個驗證類)
//2. 銷燬session,退出登陸,跳轉頁面,記錄日誌
}
}
複製代碼