大家好,下面是我总结的某个公司的面试题,希望对最近找工作的年轻人们有帮助
1,变量的引用传值
$a='1';
$b=&$a;
$b="2$b";
echo $a.",".$b;
大家可以自己敲一下试试,正确输出结果是21,21
2,逻辑判断+字符串处理
if(false != ($offset= strpos('zhangjia','zhang'))){
var_dump($offset);
}else{
var_dump('not in');
}
if(false != ($offset = strpos('zhang','zhangjia'))){
var_dump($offset);
}else{
var_dump('not in');
}
答案是两个都是not in
3,常用的字符串和数组的处理
$iniput='1,2,3,4,a,r,7,9'; 问如何得到里面整数的总和
答案:
$input='1,2,3,4,a,r,7,9';
$input=trim($input,',');
$a=explode(',',$input);
for($i=0;$i<count($a);$i++){
$a[$i]=(int)($a[$i]);
}
echo array_sum($a);
4,封装一个函数,判断一个数组是不是多维数组
if (count($array) == count($array, 1)) {
echo '是一维数组';
} else {
echo '不是一维数组';
}
注意:count的第二个参数是递归底计算多维数组中的数组的元素个数,比如
echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo "<br/>";
echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
5,考察数组下标
$a=['a'];
$a[2]='b';
$a[]='c';
$a['1']='d';
print_r($a);
foreach($a as $k=>$v){
echo $v.",";
}
echo "\n";
for($i=0;$i<count($a);$i++){
echo $a[$i].'+';
}
结果:Array ( [0] => a [2] => b [3] => c [1] => d ) a,b,c,d, a+d+b+c+
6,php如何在文件中追加写入
答案:file_put_contents("文件名称",'文件内容',FILE_APPEND);
7,考察递归+类的静态属性
下面程序输出什么
function test(){
static $count=0;
$count++;
echo $count;
if($count < 5){
test();
}
}
答案:12345
8,请设计一个类实现下面的接口
interface zhuge{
const TYPE="二手";
function input();
function output();
}
答案自己想
9,解释explain select * from db_ad_page 的结果
结果是
id:select的查询序列号
select_type:是select的类型,有以下几种
SIMPLE:简单SELECT(不使用UNION或子查询等)
PRIMARY:最外面的SELECT
UNION:UNION中的第二个或后面的SELECT语句
DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询
UNION RESULT:UNION的结果。
SUBQUERY:子查询中的第一个SELECT
DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询
DERIVED:导出表的SELECT(FROM子句的子查询)
table:显示这一行的数据是哪个表里的
type: 显示连接使用了哪些类别,有无使用索引,
结果从好到坏的的依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
possible_keys:指列出mysql能使用哪个索引在该表中找到行
key:显示mysql实际决定使用的键或索引,如果没有索引,则是null
key_len:显示mysql决定使用的键长度
ref:
rows:显示mysql认为他查询是必须检查的行数