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

[PHP] Operacje na obiektach. Pytanie o fragment kodu.
MZ
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 8 lat
  • Postów:15
0

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

Kopiuj
$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:

Kopiuj
<?php

class View {

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

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

}

I część dopisana przez require:

Kopiuj
<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; ?>

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
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 ;)


edytowany 1x, ostatnio: Patryk27
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
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 ;)


Patryk27
Szybko przeczytałem po prostu "nigdzie nie ma definicji msg" ;P Fixed.
MZ
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 8 lat
  • Postów:15
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ć :)

dzek69
tu się nie zamyka tematów, tu się klika taką fajeczkę a la "pomógł" przy poście który rozwiązuje Twój problem - zrób to proszę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.