2015-12-17 5 views
0

Я хочу получить доступ к моей переменной $ hello в моем файле model.php, как я это делаю?Как получить переменные в других классах?

contollers/controller.php

class { 

public function hello() { 

    $hello = "Hello world"; 

} 

} 

модель/model.php

class { 

public function helloworld() { 

    echo $hello; 

} 

} 

Я хочу, чтобы переменная $ привет ...

+0

Передайте это как paramete r, когда вы вызываете функцию –

+0

Удалили мой ответ, поскольку я думал, что это было в том же классе. Я бы передал его в качестве наблюдателя, упомянутого ^^ – mfink

+0

Почему? Можете ли вы дать некоторый контекст, чтобы понять структуру вашего класса и то, чего вы пытаетесь достичь? Это не похоже на MVC вообще, кроме имен классов. –

ответ

1

Если вы хотите, чтобы получить переменную от класс (как вы сказали), то вы ищете ключевое слово static:

class Controller { 
    static $hello = "Hello world"; 
} 

class Model { 
    public function helloworld() { 
     echo Controller::$hello; 
    } 
} 

$model = new Model(); 
$model->helloworld(); 

Если вы имели в виду: «Я хочу, чтобы создать объект Controller и иметь Model объект быть в состоянии прочитать сообщение от этого контроллера, вы ищете это:

class Controller { 
    public function hello() { 
     return "Hello world"; 
    } 
} 

class Model { 
    public function helloworld($controller) { 
     echo $controller->hello(); 
    } 
} 

$controller = new Controller(); 
$model = new Model(); 

$model->helloworld($controller); 
2

Для того, чтобы получить данные от одного объекта к другому, вы должны создавать методы, возвращающие конкретные данные.

class controller{ 
    private $hello; 

    public function setHello(){ 
     $this->hello = 'hi'; 
    } 

    public function getHello(){ 
     return $this->hello; 
    } 
} 

class model{ 

    public function helloWorld(){ 
     $controller = new controller(); 
     $controller->setHello(); 
     $hello = $controller->getHello(); 

    } 

} 

Также обратите внимание, что его не принято инициировать контроллеры от моделей, посмотрите, например, на MVC. Так что в приведенном выше примере модель должна быть контроллером и наоборот.

1

У ваших классов нет названия?

В вашем controller.php

<?PHP 
class Controller{ 
    public static function hello() { 
     $hello = "Hello World!"; 
     #when you call a function, you need to say what it must return! 
     return $hello; 
    } 
} 
?> 

В вашем model.php

<?php 
class Model extends Controller { 
    public static function helloworld() { 
    #call the function inside the controller class. class::function(); 
    $text = Controller::hello(); 
    #tell what to do, you can use echo or return. 
    return $text; 
    } 
} 
?> 

В вашем index.php

<?PHP 
include "controller.php"; 
include "model.php"; 
#include everything you need 

#use class:function(); 
echo Model::helloworld(); 
Смежные вопросы