gpt4 book ai didi

php while循环引起的PHP段错误

转载 作者:可可西里 更新时间:2023-10-31 22:14:19 27 4
gpt4 key购买 nike

我发现了一种制造 php 段错误的方法,我对发生的事情有点好奇。也许有人可以为我解释一下?

joern@xps:..com/trunk5/tools/nestedset> cat > while.php
<?php
while(1){
die('dd');
}
?>
^C
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
ddzsh: segmentation fault php -f while.php
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
dd%
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
dd%
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
ddzsh: segmentation fault php -f while.php
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
ddzsh: segmentation fault php -f while.php
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
dd%
0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php
dd%

如您所见,并非每次都会发生。 PHP 缓存?

php5 5.2.10.dfsg.1-2ubuntu6.1

最佳答案

Wikipedia: Segmentation Fault

一些研究表明,某些 PHP 扩展可能运行不佳,或者相互之间可能运行不佳。它还可以取决于服务器或服务器配置。

如果同时加载 XDebug 和 Zend Debugger,可能会导致此问题。

起初我认为与 die() 语句一起使用的 while 循环可能是部分原因。我很想知道这是否也会导致段错误:

while (!$fault) { 
$fault=check_fault_function();
}
if ($fault) { die('dd'); }

如果不是,那可能就是您使用 while 和 die together 的方式。如您所知 while(1) {} 是一个无限循环...(您的服务器可能不知道如何为无限例程分配内存)所以除非您试图导致崩溃,否则这通常是不好的做法。

关于php while循环引起的PHP段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1763334/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com