Require_once外部变量并与php类中的其他函数共享

时间:2010-04-11 17:55:52

标签: php class require-once

我有一个外部文件,在我的php类中需要一些vars,并与我班级的所有函数共享:

vars.inc:

<?php
 $a = 1;
?>

class.php:

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

但它不起作用:$ a var未定义

我该怎么办?

感谢所有

3 个答案:

答案 0 :(得分:1)

函数中的变量只存在于局部范围内,除非您将它们分配给类变量。

例如,如果您在所包含的页面中有此内容:

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

然后你的班级应该使用$this将它分配给一个类变量。

myvariable = $ myvariable;       }       公共职能aB {        echo $ myvariable;       }      }     ?&GT;

有关变量范围的详细信息,请参阅manual

答案 1 :(得分:0)

这是一个范围问题。也许这会更好:

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

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

答案 2 :(得分:0)

这通常是一种不好的做法。通过构造函数或方法将变量赋给类,或者创建一个包含变量的静态类或保存这些值的全局可访问变量。这取决于您的代码以及您正在尝试做的事情。