防止白屏死机


PHP die PREVENTING White Screen of Death?

我试图通过使用php 5.3.5在Joomla 1.5枚举一个完全有效的数组。每当我尝试访问数组时,就会出现白屏死机。如果我在之后添加die()语句,那么我就得到了数组(当然,在此之后的执行将停止)。出于调试的目的,我故意在数组调用和die()之后不放任何代码。移除die不会回显数组。以前有人遇到过这个问题吗?

编辑:是的,打开了错误检查。WSOD为空白
**in the View class:**
$seminarsRefDB =& JFactory::getDBO();
                $seminarsRefQuery = [MYSQL STUFF]
                $seminarsRefDB->setQuery($seminarsRefQuery);
                $seminarsRefList = $seminarsRefDB->loadAssocList();

for($i=0; $i<count($seminarsRefList); $i++) {
$classAppendix = $i;
                $seminarselects[] = JHTML::_('select.genericList', $seminar_options, 'seminar_title[]', 'class="seminardropdown" style="width:200px;"', 'value', 'text', $seminarsRefList[$i]['value'], 'seminar'.$classAppendix);
            };

$this->assignRef('seminarsArray', $seminarselects);

**In the Default Template**
print_r($this->seminarsArray[0]);
die;

我有另一个名为speakersArray的数组,它被完美地回显。我从网站的后端逐字复制了这段代码,其中两个数组都没有显示问题。

使用get_included_files和默认模板是最后包含的文件,所以执行停止在那里。

你应该把display_errors和error_reporting设置为E_ALL,这样你就不会出现白屏死机,也不会让你的服务器告诉你它遇到了什么错误。

在我看来,如果它是一个大数组并且你传递它,你可能会在代码的某个点耗尽内存。通过在数组后面放置骰子,您可能还没有达到阈值。

尽管对于开发测试来说,这种方法很好,但对于一个活动站点来说,这是一个糟糕的实践。假设您可以访问服务器,请查看错误日志文件以了解这里发生了什么。

tail -f error_log