最近处于失业状态@_@, 这段时间找工做挺不如意的,我偶尔看到这家公司的招聘以为挺有意思,他们有专门的招聘网站,让面试者在线作题,因而我就去试了一下,最终结果不尽人意,没能接到面试通知,我把作题的答案粘出来,若是有人看到,但愿能够指正一二,万分感谢。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,退出登陆,跳转页面,记录日志
}
}
复制代码