0

私のphpクラスで必要とするいくつかの変数を含む外部ファイルがあり、それらを私のクラスのすべての関数と共有しています:

vars.inc:

<?php
 $a = 1;
?>

class.php:

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

しかし、それは機能しません: $a 変数は未定義です

どのようにできるのか?

皆さんありがとう

4

3 に答える 3

1

関数内の変数は、クラス変数に割り当てない限り、ローカル スコープにのみ存在します。

たとえば、インクルードされたページにこれがあった場合:

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

次に、クラスは を使用し$thisてそれをクラス変数に割り当てる必要があります。

myvariable = $myvariable; } public function aB{ echo $myvariable; } } ?>

変数のスコープの詳細については、マニュアルを参照してください。

于 2010-04-11T18:00:49.617 に答える
0

これはスコープの問題です。多分これはより良いでしょう:

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

  }
  public function aB{
   echo $this->a;
  }
 }
?>
于 2010-04-11T18:01:22.607 に答える
0

それは一般的に悪い習慣です。コンストラクターまたはメソッドを介してクラスに変数を与えるか、変数を保持する静的クラスまたはそれらの値を保持するグローバルにアクセス可能な変数を作成します。それはあなたのコードに依存し、正確にあなたがやろうとしていることです。

于 2010-04-11T18:08:10.643 に答える