php 有意思的小题

/**

* 你的是一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较。
* PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
*
**/
1)$a =”abc”;
if($a==0){
echo “等于0”;
}else{
echo “不等于0”;
}

//输出结果是0;

2)$num1 = ‘1’;
$num2 = ‘a1’;
echo $num1 + $num2;

//结果输出1;

//这里,数字与字符相加,PHP会把字符串转换成数字再进行比较。字符串开头没有数字就输出0。1+0=1

3)

//有括号,先解析括号
$a =10;
$a=$a+(++$a)+($a++)+($a);echo “<br>”;
//$a=$a+(++$a)+($a++)+(++$a);
//10  11  11  13
var_dump($a); //结果输出45

4)最霸道的题来了

static $a=1;
$a++;
var_dump($a); //echo 3

static $a=2;
$a++;
var_dump($a);//echo 4

//php底层源码分析

 

5)count();           统计数组的位数

echo count(‘567wefdfsdfasdaSaF’);   //echo  1
echo count(null);                                  //echo  0
echo count(false);                                 //echo  1

 

6) 

 $a = 0123;

 echo $a;

 

结果返回的是:83;
原因是 int类型的变量,如果是以0开始,就会把这个变量当成八进制来解析;
八进制的0123转换为十进制 恰恰为 83;

 

7)

function myfunc($a){ echo $a + 10; } $val = 10; echo "myfunc($val)=".myfunc($val); //20myfunc(10)

//分析:

这道面试题主要是考察执行顺序,具体解答过程如下:
a.echo "myfunc($val)=";
单独这样的时候,输出结果为:myfunc(10)= ,说明双引号中只不解析函数,只解析变量
b.echo "myfunc($val)=".myfunc($val);
拼接上后面的函数后,结果为:20myfunc(10)= ,说明后面的函数先执行输出了20。然后执行了echo语句。

总结:第一步执行后面的函数输出了20,然后在执行echo语句。故结果为:20myfunc(10)=



转载于:https://www.cnblogs.com/xiaotaoing/p/6687415.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值