首页 > 解决方案 > 由于 PHP 中的分号省略而显示 HTTP 500 错误是否正常?

问题描述

给定以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Index PHP</title>
</head>
<body>
<?php
class Student {

}


$classes = get_declared_classes();
echo "Classes:" . implode(',', $classes) . "<br/>";

$class_names = ["Product", "Student", "student"];
foreach($class_names as $class_name) {
  if(class_exists($class_name)) {
    echo "{$class_name} is a declared class. <br />";
  } else {
    echo "{$class_name} is not a declared class <br/> ";
  }
  }
?>
</body>
</html>

如果我省略任何分号,PHP 会发出HTTP ERROR 500, 并且甚至不会尝试打开文件。这似乎与我知道的以前的语言(JS、Ruby)背道而驰,至少会显示网页,然后在必要时抛出错误。

我的问题是,如果省略分号,产生的 HTTP ERROR 500 是语言设计的结果,还是我的 PHP 配置(使用 MAMP)的结果?

标签: php

解决方案


PHP 中几乎总是需要分号。省略它们会导致解析错误,这将导致服务器返回 500 错误。因此,要回答您的问题,这是语言设计的结果,而不是您的配置。


推荐阅读