2009-11-07 18 views
7

OK, wiem, że jest to dość powszechne pytanie, ale wszystkie rozwiązania, które znalazłem do tej pory, dotyczą brakującego półkolonu lub nawiasów klamrowych, o których wiem, że tak nie jest.Nieoczekiwany błąd T_VARIABLE

mam klasę, która działa dobrze z tym zmiennym Zadanie:

session.php:

<?php 

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

?> 

Wielki. Ale chcę mieć moje dane bazy danych w innym pliku, więc zrobiłem to:

db_creds.php:

<?php 

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

?> 

session.php

<?php 

    include('db_creds.php'); 

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

?> 

Które potem dał mi ten błąd: Parse error: syntax error, unexpected T_VARIABLE in ../session.php on line 74, gdzie wiersz 74 jest moim przydziałem var $host.

Próbowałem nawet robi to w session.php, tak aby mieć pewność, że problemem było nie w to:

session.php

<?php 

    # include('db_creds.php'); 

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

?> 

... ale to po prostu rzuca taki sam błąd jak powyżej.

Czy ktoś może mi powiedzieć, co się tutaj dzieje? Jestem na moim końcu rozumu!

Odpowiedz

9

zmienne nie mogą tu właściwości musi być zainicjowany przez stałe w PHP

[…] this initialization must be a constant value

[Source: php.net manual]

pomocą konstruktora intialize wartość prawidłowo:

class session { 
    var $host; 

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

Ahh, dostał. Wciąż nowe klasy PHP i inne. Dzięki! +1 – neezer

-1
  1. pierwsza litera w nazwie klasy powinna być kapitałem (Sesja klasy)

  2. skończyłeś pisać konstruktora

  3. właściwości klasy są dostępne z $ this-> Nieruchomość

+0

-1 Punkt 1 jest subiektywny, a punkty 2 i 3 są nieistotne dla problemu PO. –

Powiązane problemy