百度面试php,面经网-百度php面试题(九)

百度php面试题(九)

第一题、现有如下代码:

$a = true;

$b = false;

$c = 0812;

$d = 0x812;

echo "$a has value: ".$a;

echo '$b has value: '.$b;

echo '$c has value: '.$c;

echo '$d has value: '.$d;

请写出程序输出结果

第二题、现有如下接口

interface ILogger{

public function __construct($filename);

public function write($lgo);

public function read();

}

现需要日志读写的Logger类,通过构造函数指定了日志文件的路径,通过调用write和read方法完成日志文件的读写。

1、请使用ILogger接口实现Logger类

2、现有如下Database类的代码,使用上题中的Logger类通过日志记录数据库的操作。

class Database{

private $db;

private $logger;

public function __construct(ILogger $logger,$dsn = 'mysql:dbname=testdb;host=127.0.0.1',$user = 'dbuser',$password = 'dbpass'){

$logger = $logger;

try{

$db = new PDO($dsn,$user,$password);

} catch(PDOException $e){

$logger->write('Connection failed: {$e->getMessage()}');

}

}

public function execute($sql){

$result = $db->exec($sql);

if($result)

$logger->write('$sql is executed,$result line(s) is(are) rows affected by the statement.');

else

$logger->write('Failed to execute : $sql');

}

}

请问,上述代码是否正确?如果不正确,请指出错误的代码段并修改。

第三题、假设位于192.168.1.100的数据库dbname中的用户表Users有如下结构

其中userId为用户id,值大等于0;username为登录用户名,name为用户真实姓名,passwd为用户密码的MD5值。

用户通过登录页面提交登录信息。登录页面表单代码如下:

用户名:

密码:

在php程序中需要定义User类,使用单例模式,实现用户登录、退出功能,其包含如下4个函数:

getUserInstance:获取用户对象,如果用户对象已创建,返回用户对象;如果登录过,从保存的信息中获取用户的ID并创建对象,如果没有登录,则跳转到登录页面login.php

login:用户登录验证函数,如果用户成功登录,login函数可以返回用户的ID(数据库userId的值)和用户真实姓名,如果不成功,返回false。

logout:退出当前登录

__construct:User类的构造函数,初始化用户对象,包括用户ID,用户登录名、用户真实名等

3.1请用PHP完成User类。

第四题、现有下图的树形结构

该结构存储在数据库Tree表中,Tree表结构如右表所示,其中Id为节点编号,ParentId为父节点编号。

请实现统计给定节点的子节点的数量。例如2的子节点(即节点4,5,6,7)的数量为4,3的子节点数量为0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值