-1

完全相同的代码在 php 5.3.13(服务器)上通过 lint 检查“php -l”,但在 php 5.3.12(本地)上没有通过。这是我的本地配置的结果,我可以改变还是应该改变?例如,我可以使用 printf() 重写下面的 else ,但只是好奇。

PHP Parse 错误:语法错误,意外的 T_EXIT,期待 T_FUNCTION

function wp_custom_redirect($url) {

    if( ! headers_sent() ) 
    {
        wp_redirect($url);
    } 
    else 
    {
    ?>

    <script>
    self.location.href = '<?php echo $url; ?>';
    </script>

    <?php
    }

    exit();
}

更新:带有 exit() 的行;(T_EXIT) 是有错误的行。

我可以重写 else 看起来像这样(见下文)并在我的本地机器上传递 lint。我要确定的是为什么它是有效的 php 时它会失败,我怀疑它是一些 php.ini 配置。我只是不确定在哪里。

else
{
    printf( '<script>self.location.href = "%s";</script>', $url );
}

解决了它是以前的示例,但是在我的本地服务器配置<?中使用了一个而不是一个<?php,并且在我的本地服务器配置上,short_tags 是关闭的,不知道为什么 lint 一直持续到代码的后期

4

2 回答 2

0

咦,错误出现在哪一行?

你这样称呼它?

wp_custom_redirect('http://google.com');
于 2012-05-29T09:17:27.267 回答
0

配置确实是问题所在,因为它是我本地 php.ini 上的 short_tags = Off 设置。我没有在比我发布的函数早得多的函数中捕获它,但是行号没有帮助,我不完全确定为什么 lint 没有指示 short_tag 而不是 T_EXIT。

于 2012-05-29T14:23:42.417 回答