Beklenmeyen bir hata T_VARIABLE

2 Cevap php

Tamam, bu bir ortak yeterince soru olduğunu biliyorum, ama ben şimdiye kadar bulduğum tüm çözümleri hem ben biliyorum ki benim için böyle değil, eksik bir virgül ya da küme ayracı yer var.

Bu değişken atama ile çalışıyor bir sınıf vardır:

session.php:

<?php

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

?>

Harika. Ama ben başka bir dosyada benim veritabanı ayrıntıları istiyorum, bu yüzden bu yaptım:

db_creds.php:

<?php

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

?>

session.php

<?php

   include('db_creds.php');

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

?>

Daha sonra bana bu hatayı verdi: Parse error: syntax error, unexpected T_VARIABLE in ../session.php on line 74, nerede hattı 74 benim var $host atamadır.

Hatta sadece sorunu dahil değildi emin olmak için, session.php Bu yapıyor çalıştı:

session.php

<?php

   # include('db_creds.php');

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

?>

... Ama bu sadece yukarıdaki gibi aynı hata atar.

Burada kimse bana neler söyleyebilirsiniz? Ben fikir sonunda kulüpler!

2 Cevap

Değişkenler özellikleri PHP sabitleri tarafından başlatılmış olması gerekir, burada izin verilmez:

[...] Bu başlatma sabit bir değer olmalıdır

[Source: php.net manual]

Düzgün değerini başlatılamadığı için kurucu kullanın:

class session {
    var $host;

    function __construct() {
        $this->host = $db_creds['host'];
    }
}
  1. Bir sınıf adı ilk harfi büyük olmalıdır (sınıf Oturum)

  2. Bir kurucu yazdın

  3. sınıfı özellikleri $ this-> özellik ile erişildiğinde