2009-11-07 26 views
7

これはよくある質問ですが、私が今までに見つけたすべての解決策にはセミコロンや中カッコがありませんでした。どちらも私には当てはまりません。予期しないT_VARIABLEエラー

は、私は、この変数への代入で正常に動作するクラスを持っている:

session.php:

<?php 

    class session { 
    ... 
    var $host = 'localhost'; 
    ... 
    } 

?> 

グレート。しかし、私は別のファイルで私のデータベースの詳細を持つようにしたいので、私はこれをしなかった:

db_creds.php:

<?php 

    var $db_creds = array(
     'host' => 'localhost', 
     ... 
    ); 

?> 

session.phpその後、私を与えた

<?php 

    include('db_creds.php'); 

    class session { 
    ... 
    var $host = $db_creds['host']; 
    ... 
    } 

?> 

このエラー:Parse error: syntax error, unexpected T_VARIABLE in ../session.php on line 74、行74は私のvar $host割り当てです。

私もちょうど問題が含まれていなかったことを確認するため、session.phpでこれをやってみました:

session.php

<?php 

    # include('db_creds.php'); 

    class session { 
    ... 
    var $db_host = 'localhost'; 
    var $host = $db_host; 
    ... 
    } 

?> 

...しかし、その上記と同じエラーが返されます。

ここで何が起こっているのか教えていただけますか?私は私の知恵の終わりです!

答えて

9

変数は、プロパティがPHPの定数で初期化する必要があります、ここでは許可されていません。

[…] this initialization must be a constant value

[Source: php.net manual]

が正常値をintializeするコンストラクタを使用します。

class session { 
    var $host; 

    function __construct() { 
     $this->host = $db_creds['host']; 
    } 
} 
+0

ああは、それを得ました。まだPHPクラスとそれ以外のものは初めてです。ありがとう! +1 – neezer

-1
  1. クラス名の最初の文字は大文字でなければなりません(クラスSession)

  2. あなたは

  3. クラスのプロパティは、ます$ this-でアクセスされているコンストラクタを書いた>プロパティ

+0

-1点1は主観的であり、点2と点3はOPの問題とは無関係です。 –

関連する問題