好的,所以我正在玩堆栈溢出循环的想法。我输入了以下代码,并在谷歌浏览器中得到了一个可爱的小图像(他们回答了500内部错误,这对谷歌的方式没有帮助!)。这是预期的和有目的的。
代码集#2
<?php
for($x=-1;$x<=3;$x++){
echo $x/0.">";
}
?>
通过检查我找到的标题:
http://server.domain/overflow.php
GET /overflow.php HTTP/1.1
Host: server.domain
User-Agent: Browser
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0
HTTP/1.0 500 Internal Server Error
Date: Thu, 22 Aug 2013 21:51:30 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
我到达了上面的代码,因为我实际上想知道将零除以及PHP如何处理它。我编写了下面的代码来尝试触发结果,但没有得到我期望的结果。问题不是从以下代码中获取500 internal server error
,而是获得了其他内容...... NULL
我希望服务器抛出错误。
代码集#1
<?php
for($x=-1;$x<=3;$x++){
echo $x/$x.">";
}
?>
输出
1>>1>1>1>
为什么不是第一位代码导致500内部服务器错误,因为我除以零? 1/1=1
,1/0=500 Error
,0/0=Null
答案 0 :(得分:3)
第一个版本出现错误,因为您遇到语法错误。 PHP将0.
中的点视为小数点,而不是连接运算符。正确的代码是:
($x/0) . ">"; // This version is my preference
或者:
$x/0. . ">";
答案 1 :(得分:3)
你应该
Parse error: syntax error, unexpected '">"' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in /your_file.php on line 3
将代码更改为
<?php
for($x=-1;$x<=3;$x++){
echo $x/0;
echo ">";
}
?>
会帮你的
Warning: Division by zero in /your_file.php on line 3
>
Warning: Division by zero in /your_file.php on line 3
>
Warning: Division by zero in /your_file.php on line 3
>
Warning: Division by zero in /your_file.php on line 3
>
Warning: Division by zero in /your_file.php on line 3
>