[PHP] Operacje na obiektach. Pytanie o fragment kodu.

0

Śledzę pewien kurs tworzenia MVC i autor tego kursu użył:

$this->view->msg = 'This page doesnt exist';

Chciałbym się dowiedzieć na jakiej zasadzie to działa. Nigdzie nie ma zdefiniowanej funkcji msg.
Klasa View wygląda tak:

<?php

class View {

	function __construct() {
		echo 'this is the view';
	}

	public function render($name)
	{
		require 'views/' . $name . '.php';
	}

}

I część dopisana przez require:

<hr />
<?php echo $this->msg; ?>
1

Zmienna $this->view oznacza że to co podasz będzie można wykorzystać w widoku.

Więc jeżeli autor napisał $this->view->msg = `; oznacza to, że póżniej w pliku widoku wykorzysta sobie zmienną 'msg'. Pewnie odwoła się do niej poprzez $this->msg bądź $msg to już zależy co to za framework MVC.

Np. w pliku widoku będzie później coś takiego

To jest wiadomość <?php echo $this->msg; ?>

1

Nigdzie nie ma zdefiniowanej funkcji msg.

To przypisanie jest jej definicją:
http://ideone.com/tlXYRM

Edit: no i ofc. to jest zmienna, a nie funkcja ;)

0

@Patryk27: Zapomniałeś zaznaczyć, że TO NIE JEST FUNKCJA msg (@Marcin_ZG). To jest zmienna. Funkcje wywołuje się na zasadzie nazwa(parametry), tu masz przypisanie przecież stringa. Poza tym to patrz odp. wyżej ;)

0

Dzięki wielki. Jestem przyzwyczajony do C i tam każdą zmienną się wcześniej deklarowało, a tu jest odrazy deklaracja i wykorzystanie, nawet nie wiedziałem, że tak można. Dzięki za pomoc. Można zamykać :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1