php面试

来源:互联网 发布:java递归获取父节点 编辑:程序博客网 时间:2024/06/06 00:12

Q6:以下代码应该输出什么

$x=true and false;var_dump($x);        //bool(true) echo "<br>";        echo $x;             //1echo "<br>";           $y=true or false;var_dump($y);        //bool(true) echo "<br>";  echo $y;             //1echo "<hr>";
此处强调的是运算符的优先级,=比and和or的级别高因此第一条等同于:
$x=true;true and false

Q7:经过运算下面的结果是多少

$m=3+"15%"+"$25";echo $m."<br>";      //18$n="15%"+3+"$25";echo $n."<br>";      //18$k="$25"+3+"15%";echo $k;             //18echo "<hr>";
php会根据上下文实现类型的自动转化。以上代码可以理解为,如果将字符串进行数学运算,实际php会尽可能将字符串中的数字进行转化,如果是数字开头,将转化为数字,比如“15%”会转化为15,如果不是数字开头,则转化为0

Q8运行一下代码会输出什么?

$text="jhon";echo strlen($text)."<br>";      //4$text[10]="doe";echo strlen($text)."<br>";      //11echo $text;                     //jhon d      echo "<hr>";

text[n]="mn"n text,虽然$text刚开始只有5个字符长度,但php会默认添加空格
Q9:

$v=1;$m=2;$l=3;if(($l > $m) > $v){    echo "yes";}else {    echo "no";   }

实际输出是no,分析:l> m会转化为1,1在于$v比较。
Q10:

$x=null;if('0xFF' == 255){    $x=(int)'0xFF';}echo 
实际运行结果是$x=0而不是255首先'0xFF' == 255,会进行转化,将16进制转化为10 进制数字,0xFF->255php使用is_numeric_string判断字符串是否包含十六进制数字,然后进行转化。但是$x=(int)'0xFF'是否也转化为255呢?显然不是,将一个字符串进行强制类型转换,实际上用的是convert_to_long,它实际上是将字符串从左到右进行转化,遇到非数字字符则停止。因此0xFF到x就停止了,所以$x=0
0 0
原创粉丝点击