Require_once внешние переменные и делиться ими с другими функциями в классе php - PullRequest
0 голосов
/ 11 апреля 2010

У меня есть внешний файл с некоторыми переменными, который требуется в моем классе php, и делюсь ими со всеми функциями моего класса:

vars.inc:

<?php
 $a = 1;
?>

class.php:

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

но это не работает: переменная $ не определена

как мне это сделать?

спасибо всем

Ответы [ 3 ]

1 голос
/ 11 апреля 2010

Переменные в функции существуют только в локальной области, если вы не назначите их переменным класса.

Например, если у вас это есть на включенной странице:ваш класс должен использовать $this, чтобы присвоить его переменной класса.

myvariable = $ myvariable;} публичная функция aB {echo $ myvariable;}}?>

См. Руководство для получения дополнительной информации о области видимости переменной.

0 голосов
/ 11 апреля 2010

Это вообще плохая практика. Либо передайте переменные классу через конструктор или методы, либо создайте класс Static, который содержит переменные или глобально доступную переменную, которая будет содержать эти значения. Это зависит от вашего кода, и именно вы пытаетесь это сделать.

0 голосов
/ 11 апреля 2010

Это проблема масштаба. Может быть, так будет лучше:

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

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