2012-05-22 3 views
-5

как я могу назвать переменную, которая находится внутри одного класса в другой файл пример:PHP переменная OOP вызов из класса

Controller.php

<?php 
    class hello { 
     public $var = 1; 

     public function a(){ 
      ...... 
     } 

     public function b(){ 
      ..... 
     } 
    } 
?> 

Index.php

<?php 
    $hello = new hello; 
    //how to call the $var ? HERE 
?> 

ответ

5

Точно так же:

$hello->var = 2 

Или retrive значение:

$val = $hello->var; 
3

Если var является публичной вы можете сделать это:

$hello->var = $value; 
$value = $hello->var; 

Как правило, вы не хотите, чтобы получить доступ к членам класса напрямую. Вы могли бы сделать методы получения и установки:

class hello{ 
    private $var; 

    ... 

    function getVar(){ 
     return $var; 
    } 

    function setVar($value){ 
     $var = $value; 
    } 
} 

Тогда вы можете сделать это:

$hello->getVar(); 
$hello->setVar($newVarValue); 

PHP также имеет магические функции, которые позволяют __get() and __set() для доступа к недоступным членов. Это в основном то же самое, что и геттер и сеттер, но вы можете уйти с одной функцией вместо нескольких функций для каждого члена (это может стать беспорядочным, хотя если не поддерживать должным образом).

Так что в вашем классе вы можете сделать это:

class hello{ 
    private $var; 

    ... 

    function __get($name){ 
     if($name == 'var') 
      return $var; 
    } 

    function __set($name, $value){ 
     if($name == 'var') 
      $var = $value; 
    } 
} 

, но вы все еще можете получить доступ к членам, как это:

$hello->var = $value; 
$value = $hello->var; 

даже если $var является частным.

Смежные вопросы