Değişkenli dahil Neden globallerinin bir sınıf içinde boş?

2 Cevap php

Ne yapmaya çalışıyorum web sitesi için ayarları içeren ayrı bir PHP dosyası olduğunu ve daha sonra sahip diğer sayfaları bu dosyayı içerir ve ayarlarına göre kod yürütebilir. Ben bir sınıf içinde bu değişkenleri başvurmak için küresel kullanmak zaman Ancak, değişkenler boş. Örneğin:

settings.php:

<?php
$setting1 = 'on';
$setting2 = 'off';
?>

class.php:

<?php
require_once('./settings.php');

class myclass {
  public function __construct {
    global $setting1;
    echo $setting1;
  }
}

$object = new myclass;
?>

Bu hiçbir şey yazdırır. Ben sınıf dışında "echo $ ayarı1" yaparsanız Ancak, bu 'açık' yazdırır. Ben 'üzerinde' basılmış, dosyanın kendisi içindeki değişken ayarlama ziyade dahil çalıştım ben Sınıfım için yeni bir nesne oluştururken. Ben sınıf için küresel kapsamına dahil değişkenler kullanılabilir hale getirmek için yapmanız gereken özel bir şey var mı?

2 Cevap

Sizin yapıcı adından sonra parantez ihtiyacı, örneğin

public function __construct() {

}

Ben bu bir ölümcül hata veriyor şüpheli ve o çünkü display_errors / error_reporting ayarları vizyonda değildir.

Sen parantez eksik:

public function __construct {

olmalıdır

public function __construct( ) {

Sonuç:

$ php -v
PHP 5.2.5 (cli) (built: Nov 29 2007 09:31:38) 
2007-Macbook:Desktop mark$ php class.php
on