Php 前++和后++区别 趣味题
Php 前++和后++区别 趣味题
Alexphp 前++和后++区别 趣味题
前++ 先自增在返回
1
2
3
4
5
6
7$y = 0;
$y = ++$y;
var_dump($y); //1
$y = 0;
$i=$y+1;$y=$i;
var_dump($y); //1后++ 先返回再自增
1
2
3
4
5
6
7$y = 0;
$y = $y++;
var_dump($y); //0
$i = 0;
$y=$i;$i=$i+1;
var_dump($y); //0趣味题
1
2
3
4
5
6
7
8
9$count = 5;
function get_count() {
static $count = 0;
$res = $count++;
return $res;
}
++$count;
get_count();
echo get_count(); // 1 //原因 先返回后自增自动类型转换判断
1
2
3
4
5
6
7
8$arr = array(0=>1,"aa"=>2, 3, 4);
foreach($arr as $key=>$val){
print($key == "aa" ? 5 : $val);
}
//5534
var_dump(0 == 'aa'); //bool(true)
var_dump('0' == 'aa'); //bool(false)在PHP中两个值进行逻辑判断时,如果两个值的类型不一致PHP会自动把右边的值转换到左边的类型,然后再进行判断。因此”aa”转换整形等于0,自然也就等于左边的0了,相反如果将0换成字符串,就不会隐式转换类型了,比较自然不相同了。
printf
1
2$i='11';
printf("%d\n",printf("%d",printf("%d",$i))); //1121printf不仅是打印函数,而且返回字符串长度
1
2
3
4$res = printf('%d',11);
var_dump($res); //2
$res = printf('%d',1);
var_dump($res); //1if语句
1
2
3
4
5
6
7$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . " " . $b; //1 6- 1、注意
=
号赋值 非==
判断 - 2、 注意 if 语句这里 $a=5 ,这里的$a是bool类型
- 1、注意
count
1
2$a = count ("567") + count(null) + count(false);
echo $a;- count 不同类型返回值,null为0,false为1
1
2
3var_dump(count("567")); //1
var_dump(count(null)); //0
var_dump(count(false)); //1