在php編程中出現空白頁面可能是由以下幾個原因造成的:
1、邏輯錯誤
邏輯錯誤是最難排除的,從表面上看,也許代碼是合法的,是正規的,可運行起來卻不是預料之中的。為什麼呢?也許是編寫者想得不夠全面,畢竟人是人,計算機是計算機,計算機不可能完全按照人的思路去運行腳本。在這裡,我告訴大家一個比較好的調試方法,就是使用注釋符“/* */”,注釋掉一些代碼,觀察運行情況。要想完全排除邏輯錯誤,沒有耐心是不行的,所以要靜下心來,不要著急。
2、行為未定義
看下面的代碼:
<?php
$action = $_GET['id'];
if($action == '')
$action = 1;
if($action == 1) {
echo("/$action's value is 1");
} else if($action == 2) {
echo("/$action's value is 2");
}
?>
這段代碼大家看得很明白,就是如果$action變量為空時將它設為1,然後判斷$action變量的值而做出不同的事件。當然,假如$action既不等於1,也不等於2的時候,PHP會做什麼呢??——什麼也不會做,所以就會產生了空白的頁面。知道了原因,解決就容易了。關於這個問題的解決,很簡單,在 if模塊後加一個else就可以了,打印一些信息即可。
3、語法錯誤
大家可能會問了,如果出現語法錯誤,一般會有錯誤提示的,怎麼會空白呢?當然,這只是一些個別現象,在某些主頁空間中(比如中國聚網的免費空間),如果你寫得PHP有語法錯誤,它也不會有任何提示。解決也很容易,在上傳文件之前在本地測試,找出錯誤的代碼進行改正。(.)
4、濫用錯誤屏蔽符@
錯誤抑制符“@”常常用於可能會發生錯誤的地方,但是抑制符使用過多或使用得不是時候,也可能導致空白也免得出現,來看看下面兩個PHP腳本吧:
test1.php
<?php
@include("test2.php");
echo($var);
?>
test2.php
<?php
$var = "Hi" //這行代碼有錯誤,沒有分號
$var1 = "Hello" //同上
?>
運行test1看看,結果就產生了空白的頁面。糾正也很簡單,可以去掉include函數前面的抑制符,或者更正test2.php文件中的錯誤。