程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php提示Parse error: syntax error, unexpected T_ENDWHILE in

php提示Parse error: syntax error, unexpected T_ENDWHILE in

編輯:關於PHP編程

在寫一個簡單的程序時碰到Parse error: syntax error, unexpected T_ENDWHILE in www.bKjia.c0m .php文件了,下面我給大家分析一下原因與解決方法。

問題現象:

1、同樣的代碼,在某些機器上運行正常,但在特定機器上運行報錯。

2、同一站點部分頁面顯示正常(例如<?php phpinfo();?>),但打開部分頁面時,phpxx_errors.log或者頁面顯示錯誤提示“Parse error: syntax error, unexpected T_ENDWHILE in xx.php on line xx”。

錯誤原因:

該錯誤有可能是因為編寫PHP腳本時丟失一個花括號(“}”),但更常見的原因是php.ini文件中short_open_tag值為Off導致的。

決定是否允許使用 PHP 代碼開始標志的縮寫形式(<? ?>)。如果要和 XML 結合使用 PHP,可以禁用此選項以便於嵌入使用 <?xml ?>。否則還可以通過 PHP 來輸出,例如:<?php echo '<?xml version="1.0"'; ?>。如果禁用了,必須使用 PHP 代碼開始標志的完整形式(<?php ?>)。

Note: 本指令也會影響到縮寫形式 <?= ,它和 <? echo 等價。使用此縮寫需要設置 short_open_tag 的值為 On。不推薦使用短標簽,使用<?php ?>才是規范的方法,但因為這種短標簽使用的時間比較長(歷史原因),為兼容老代碼,這種特性才被保存了下來。

解決方案:

將php.ini文件中short_open_tag值設置為On。

相關知識:PHP短標簽short_open_tag

名字 默認 可修改范圍 更新日志 short_open_tag "1" PHP_INI_ALL 在 PHP 4.0.0 時是 PHP_INI_ALL。 在 PHP < 5.3.0 時是 PHP_INI_PERDIR。 asp_tags "0" PHP_INI_PERDIR 在 PHP 4.0.0 時是 PHP_INI_ALL。 precision "14" PHP_INI_ALL   serialize_precision "17" PHP_INI_ALL 從 PHP 4.3.2 起可用。在 PHP 5.3.5以前,默認值為 100 y2k_compliance "1" PHP_INI_ALL 在 PHP 5.4.0 中移除該選項。 allow_call_time_pass_reference "1" PHP_INI_PERDIR 在 PHP 4.0.0 時是 PHP_INI_ALL。 在 PHP 5.4.0 中移除該選項。 disable_functions "" php.ini only 從 PHP 4.0.1 起可用。 disable_classes "" php.ini only 從 PHP 4.3.2 起可用。 exit_on_timeout "" PHP_INI_ALL 從 PHP 5.3.0 起可用。 expose_php "1" php.ini only   zend.multibyte "0" PHP_INI_ALL 從 PHP 5.4.0 起可用 zend.script_encoding NULL PHP_INI_ALL 從 PHP 5.4.0 起可用 zend.signal_check "0" PHP_INI_SYSTEM 從 PHP 5.4.0 起可用 zend.ze1_compatibility_mode "0" PHP_INI_ALL 從 PHP 5.0.0起可用。 在 PHP 5.3.0 中移除該選項 detect_unicode "1" PHP_INI_ALL 從 PHP 5.1.0起可用。 本過時特性肯定會在未來被移除

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved