在我的 drupal 7 站点上运行 drush 更新后,我用来为表单引入用户信息的 php 代码执行了两次。这是一个问题,因为我在 php 中创建了一些被调用的函数,因此当它第二次执行 PHP 时,它会尝试重新声明这些函数,并且出现如下错误:
PHP Fatal error: Cannot redeclare fooBar() (previously declared in [path_to_drupal7]/modules/php/php.module(80) : eval()'d code:3) in [path_to_drupal7]/modules/php/php.module(80) : eval()'d code on line 4
调用什么函数或它做什么并不重要。在此示例中,代码如下:
<?php
function fooBar() {
print "foo bar";
}
fooBar();
?>
页面是什么内容类型似乎也无关紧要(我的情况是我需要它将用户信息带入表单)。
为什么 Drupal 执行 PHP 两次?更重要的是,我怎样才能让它不这样做呢?
编辑: Drupal 似乎对修剪版本执行一次 php,对完整版本执行一次,对完整版本执行一次。这是我在预览帖子时所期望的。我真的不关心预览版,所以我很乐意摆脱它。为什么我查看页面时 Drupal 会执行两次代码?(为什么当我实际查看页面时它会为修剪后的版本运行它?)