Dış değişkenler require_once ve bir php sınıfındaki diğer funcions olanlar paylaşabilirsiniz

3 Cevap php

Benim php sınıfta gerektiren ve benim sınıfın tüm fonksiyonları ile bu paylaşmak için bazı değişkenler ile harici bir dosya var:

vars.inc:

<?php
 $a = 1;
?>

class.php:

<?php
 class A{
  public function __construct(){
   require_once("vars.inc");
  }
  public function aB{
   echo $a;
  }
 }
?>

ama çalışmıyor: $ a var tanımlanmamış

Ben nasıl yapabilirim?

teşekkürler bütün

3 Cevap

Eğer sınıf değişkenleri atamak sürece bir fonksiyon değişkenler sadece yerel kapsamında var.

Örneğin, sizin dahil sayfasında bu olsaydı:

<?php
$myvariable = 'hello';
?>

Sonra sınıf bir sınıf değişkeni atamak için $this kullanmalısınız.

class A{

  private $myvariable;

  public function __construct(){
   require_once("vars.inc");
   $this->myvariable = $myvariable;
  }

  public function aB{
   echo $myvariable;
  }

 }

?>

Değişken kapsamı hakkında daha fazla bilgi için manual bakın.

Bu genellikle kötü bir uygulamadır. Kurucu veya yöntemlerle sınıf değişkenleri vermek, veya bu değerleri yapacak değişkenleri veya dünya çapında erişilebilir değişkeni tutan bir statik sınıf oluşturmak ya. Bu sizin koduna bağlıdır ve tam olarak yapmak için çalışıyoruz.

Bu kapsamla ilgili bir sorun. Belki bu daha iyi olacak:

<?php
 class A{
  protect $a;
  public function __construct(){
   require_once("vars.inc");
   $this->a = $a;

  }
  public function aB{
   echo $this->a;
  }
 }
?>