【问题标题】:__construct() { issue for PHP4 and PHP5. maybe an another reason__construct() { PHP4 和 PHP5 的问题。也许另一个原因
【发布时间】:2010-11-16 23:37:53
【问题描述】:

我对 CodeIgniter 有奇怪的问题,

这是我的控制器的开始部分

class Home extends Controller
{
    /** 
    * Constructor
    */ 
    public function __construct() {
        parent::Controller();

    }

...

在本地主机上一切正常,但是当我在服务器上尝试同样的操作时,我遇到了如下错误:

解析错误:语法错误,意外 T_STRING,期待 T_OLD_FUNCTION 或 T_FUNCTION 或 T_VAR 或 '}' 在 /home3/blabla/public_html/blablabla/applications/frontend/controllers/home.php 在第 22 行

我研究过,人们说它是关于 PHP4.. 它应该是 PHP5。但我的服务器上安装了 PHP5。可能是什么原因?

感谢帮助!非常感谢!

【问题讨论】:

  • 真的确定您正在运行 PHP 5 吗?也许您的服务器同时具有 PHP 4 和 PHP 5,并且您需要激活一些配置选项才能使用 PHP 5(我有一个旧服务器,我必须这样做)?
  • 使用 echo "version = " 检查您的版本。 PHP_版本;第 22 行是哪一行?
  • 我的服务器信息显示 PHP 版本 5.2.9

标签: php codeigniter php4


【解决方案1】:

听起来解释器确实遇到了它没想到的 public 关键字,这表明该站点在 PHP4 上运行/存在问题。

确保您在网站本身中回显 PHP 版本,而不仅仅是在某个控制面板中查找它。

检查是否有任何.htaccess 指令可能会将默认处理程序更改为 PHP4。

有时主机可能默认使用 PHP4 处理 .php 文件,而 PHP5 仅用于 .php5 文件。

【讨论】:

    【解决方案2】:

    我很抱歉!我不知道怎么来的,但 Bluehost 信息面板说 PHP 5 处于活动状态。我只是相信这一点。当我制作一个 php_info();以防万一,我看到它实际上是 php 4 :/

    我为 PHP5 更新了服务器,现在一切正常。

    我很抱歉搞砸了。感谢大家的大力支持!!!

    【讨论】:

      【解决方案3】:

      你是否也对类中的其他函数有同样的问题?因为,据我所知,您不能将构造函数设为公共或私有。它应该只是“function __construct()”。

      【讨论】:

      • 您可以将 __construct() 函数设为私有。在 php5 中,如果你在一个类中使用“function functionName()”,它假定该函数是公共的。
      • 当我删除 __construct() 时,一切正常。这门课特别有问题!休息很好。但我需要使用 __construct() ,我有模型负载等...
      • 它实际上就在手册中:public function __construct() { }php.net/manual/en/language.oop5.visibility.php
      【解决方案4】:

      在您的 php.ini 文件中查看正在运行的 php 版本。

      【讨论】:

        【解决方案5】:

        我删除了公共部分,它工作正常。真奇怪!那里的公众真的很重要吗!?

        【讨论】:

        • 访问级别(公共、私有、受保护)是 php5 中引入的另一个特性。因此,正如这里所说的其他人一样,您的脚本必须在 php4 中运行。将 php_info() 放在脚本的顶部,您就可以确定调用的是哪个解释器。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-27
        • 2011-08-07
        相关资源
        最近更新 更多