2009-08-05 5 views
0

私はCodeIgniterので奇妙な問題を持って、ここ __construct(){PHP4とPHP5の問題です。私は、サーバーで同じしようとすると、多分もう一つの理由

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

    } 

... 

すべてがローカルホストで正常に動作している私のコントローラの先頭部分ですが、私はクロスを来ります

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home3/blabla/public_html/blablabla/applications/frontend/controllers/home.php on line 22

私は調査し、人々はそれはPHP4についてです.. PHP5でなければなりません。私のサーバーはPHP5を持っています。理由は何でしょうか?

ありがとうございます!どうもありがとう!

+2

あなたは本当に** PHP 5を実行していますか?サーバーにPHP 4とPHP 5の両方があり、PHP 5にするためにいくつかの設定オプションを有効にする必要があるかもしれません(古いサーバーがあります)。 –

+0

echo "version ="でバージョンを確認してください。 PHP_VERSION; 22行目はどれですか? – Lucky

+0

私のサーバ情報は PHPバージョン\t 5.2.9 –

答えて

2

大変申し訳ありません。私はどうしたらいいのかわかりませんが、Bluehostの情報パネルによれば、PHP 5はアクティブです。私はちょうどそれを信じていた。私がphp_info()を作成するとき。ちょうどその場合のページ、私は実際にはPHP 4を見た:/

私はPHP5のためのサーバーを更新しました。

大変申し訳ございません。素晴らしいサポートをしてくれてありがとう!

+0

旗に答えてください – NDM

0

あなたはクラス内の他の機能にも同じ問題がありますか?なぜなら、私が知る限り、コンストラクタをパブリックまたはプライベートにすることはできないからです。これは "function __construct()"でなければなりません。

+0

と表示されています。__construct()関数を非公開にすることができます。 php5の場合、関数functionName()をクラスで使用すると、関数がpublicであるとみなされます。 – Anthony

+0

私はその__construct()を削除すると、すべて正常に動作します。特にこのクラスには間違っています!安静です。しかし、私は__construct()を使う必要があります。モデルロードなどがあります。 –

+0

実際には、マニュアルの 'public function __construct(){}' http://php.net/manual/en/languageにあります。 oop5.visibility.php – deceze

4

実際に通訳者が期待していないpublicキーワードに絡みついているように思えます。これは、PHP4で動作しているサイトの/障害の兆候です。

一部のコントロールパネルでPHPを検索するだけでなく、サイト自体にPHPバージョンが表示されていることを確認してください。

.htaccessディレクティブがあり、デフォルトのハンドラをPHP4に変更する可能性があります。

時々、ホストは.phpファイルの場合PHP4に、.php5ファイルの場合PHP5にデフォルト設定されることがあります。

0

php.iniファイルで実行中のPHPバージョンを調べてください。

0

公共の部分を削除しても問題ありません。それは変だね!そこには公衆が本当に重要なのですか?

+0

アクセスレベル(public、private、protected)は、php5で導入されたもう1つの機能です。だから、他の人たちと同じように、あなたのスクリプトはphp4で動作していなければなりません。スクリプトの一番上にphp_info()を置くと、どのインタプリタが呼び出されているかが分かります。 –

関連する問題