小学期的一道题,特此记录。
题目主要是if($a == 0 && $a),if(is_numeric($b))和if($b>1234)
在php中a='0'和a=0是不一样的,前者是字符串,后者是数值。
对于字符串,比如a='0',字符串在进行比较值的时候会被当作0处理。而且同时a='0'本身会被当作真值处理,这样就满足了if($a==0&&$a),而a=0虽然值为0,但是由于是数值,会被当作假值处理,也就是$a为布尔值0。
所以此处输入a='0'可以绕过。当然也可以是任意字符,比如'。(引号)
接着是if(is_numeric($b))和if($b>1234)
,先是判断b是否为数字,接着判断是否大于1234.
既要不是纯数字,又要大于1234。就可以通过数字+字符绕过。
比如1235c。前面说过,字符串的值会被当作0,这里的1235c就会变成1235来进行大小比较,这样既绕过b不能是数字的限制,又大于1234。