🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1、下面输出$a的值是多少; ~~~ $a=1; $b=&$a; $b="2$a"; echo $a; ~~~ > 输出21 2、下面输出${$b}的值是多少; ~~~ $a='b'; $b='a'; echo ${$b}; ~~~ > 输出b 3、下面输出值是多少 ~~~ $a='123'; echo substr($a,0,-1); echo substr($a,-1,-1); ~~~ > 12 > 3 4、下面输出什么 ~~~ $a='hello_word_china'; $b=[ 'hello_', '_' ]; $c=[ '',' ' ]; echo ucwords(str_replace($b,$c,$a)); ~~~ > Word China 注意中间空格 > 5、下面输出什么 ~~~ var_dump(0123==123); var_dump('0123'==123); var_dump('0123'===123); ~~~ > bool(false) // 0123是八进制数 (等于十进制 83) 可以var_dump(0123)看看 > bool(true) // '0123' 字符串 PHP 默认转换为数字开头的 > bool(false) 6、下面输出什么 ~~~ echo 3+"15%"+"$25"; ~~~ > 18 > 7、下面输出什么? ~~~ $x=null; if('0xFF'==255){ $x=(int)0xFF; } var_dump($x); ~~~ > int(255) //'0xFF'==255 0xFF被隐式转换成八进制0xFF 八进制0xFF转为10进制 等于255 > 8、下面输出222 ,为什么?如何避免这种情况发生? ~~~ $a='abcdefg'; $b='abc'; if(strpos($a,$b)){ $c= 111; }else{ $c= 222; } echo $c; ~~~ > strpos($a,$b) 结果是0, 0为false,应使用if(strpos($a,$b)!==false) >