题目一:
<?php
echo -10%3
?>
答案:-1。
考查:优先级。因为-的优先级比%求余的优先级低,也就是-(10%3)。
题目二:
print (int)pow(2,32)
答案:0
题目三:
//file1.php
<?php
$a = '123'
?>
//file2.php
<?php
echo include('file1.php')
?>
答案:1.
考查:返回值。因include()也是一个函数,有返回值。在成功时返回1,失败时返回错误信息。如果被包含的文件有return,则inculde()成功时返回该文件的`返回值。
题目四:
<?php
$count = 5
function get_count() {
static $count = 0
return $count++
}
++$count
get_count()
echo get_count()
?>
答案:1.
考查:static和++。因static $count,所以只在第一次调用get_count的时候对$count赋值为0,第二次再进来这个函数,则不会第二次赋值。其次就是return $count++和return ++$count了,前者先返回,后者先++再返回。
题目五:
<?php
$arr= array(0 =>1,'aa' =>2,3,4)
foreach($arr as $key =>$val){
print($key == 'aa' ? 5 : $val)
}
?>
答案:5534.
考查:类型转换。因遍历数组第一次的时候,$key和aa的比较实际就是0和aa的比较,一个是int一个是string,这个时候会转换类型,将字符串转换为数字再与数字比较。所以0=='aa'就是0==0,所以为true,也就是输出5。虽然PHP是若类型语言,但是人家也有类型的好吗。
题目六:
<?php
echo count (false)
$a = count ("567"亮袭) + count(null)
+ count(false)
echo $a
?>
答案:2.
考查:count的用法。
因count()的官方解释“If the parameter
is not an array or not an object
with implemented Countable
interface, 1 will be returned.”.意思是说,如果不是数组或者对象的其他类型,返回1.那么这个值应该就是1+0+1了(boolen人家也是一个类型,虽然是讨厌的false)。NULL的意思是没有值,难道在计数函数中还能有1?
题目七:
<?php
$arr = array(1,2,3)
foreach($arr as &$val) {
$val += $val % 2 ? $val++ : $val--
}
$val = 0
print(join('',$arr))
?>
答案:330。
考查:++和&。
因foreach结束后的数组应该迟键凯是array(3,3,7)最后给第码唤三个元素赋值为0,所以就是330了。其中注意的是&,如果有&则是对原变量 *** 作,如果没有,则是先生成一个新变量,然后给这个变量复制,最后 *** 作的是这个新变量。
题目八:
<?php
echo intval((0.1+0.7)*10)
?>
答案:7。
考查:浮点数的概念。
因0.1+0.7=0.8 0.8*10=8 所以转换成整数后还是8?错!因为0.1+0.7=0.8是浮点数,0.8*10在数学计算中是正整数8,可是在计算机中它仍然是浮点数8,什么叫浮点数8?每一个看起来像整数的浮点数,其实都不是整数,比如这个8,它其实只是
7.9999循环,无限接近于8,转换成整数会舍弃小数部分,就是7喽。
题目九:
<?php
ini_set('display_errors',0)
$arr = array(1=>1,3=>3)
$i = 2
$a = 'test' . isset($arr[$i]) ?
$arr[$i] : $i
请问$a的值是什么?
A、test B、NULL C、2 D、test2
?>
答案:B。
考查:优先级 因“."的优先级高于三元运算符"?:"。所以程序其实报错了。会说$arr的索引2不存在。
题目十:
<?php
$a = 3
$b = 5
if($a = 5 || $b = 7) {
$a++
$b++
}
echo $a . " " . $b
?>
A、6 8 B、6 6 C、2 6 D、1 6 E、4 6
答案:D。
考查:优先级,基础概念,++。因“="的优先级低于“||”,所以先逻辑判断再赋值。也就是($a = (5 || $b = 7))。所以,最后其实给a赋值了,$a等于1.
2:我亏租并觉得第二题比较有意思,如型樱果不缓存,用递销迹归100就已经够大了<?php
$cache_ary = array(0=>1 , 1=>1)
$num = 1200
function fib_cache($i){
global $cache_ary
if($i == 1 || $i == 0 ){
return $cache_ary[$i]
}else if(isset($cache_ary[$i])){
return $cache_ary[$i]
}else{
$cache_ary[$i] = fib_cache($i - 1) + fib_cache($i - 2)
return $cache_ary[$i]
}
}
function fib_2($i){
if($i == 0 || $i == 1){
return 1
}else{
return fib_2($i - 1) + fib_2($i - 2)
}
}
?>
<?function pathconvert($cur,$absp)//当迟衫前文件,目标路径
{
$cur=str_replace('\\','/',$cur)
$absp=str_replace('\\','/',$absp)
$sabsp=explode('毁消/',$absp)
$scur=explode('/',$cur)
$la=count($sabsp)-1
$lc=count($scur)-1
$l=max($la,$lb)
for($i=0$i<=$l$i++){
if($sabsp[$i]!=$scur[$i])
break
}
$k=$i-1
$path=""
for($i=1$i<=($lc-$k-1)$i++)
$path.="../"
for($i=$k+1$i<=($la-1)$i++)
$path.=$sabsp[$i]."/"
$path.=$sabsp[$la]
return$path
}
$path=pathconvert("/home/web/test/a.php","/纤旦知home/data/d.png")
echo $path
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)