Słowo kluczowe this i znak dolara.

Słowo kluczowe this i znak dolara.
M2
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
Spotakałem się z dwoma zapisami typu:
$this->name i $this->$name jaka jest różnica między nimi.

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
4

Pierwsze odwołuje się do atrubutu name bieżącego obiektu, drugie odwołuje się do atrybutu, którego nazwa zapisana jest w zmiennej $name.

  • Rejestracja: dni
  • Ostatnio: dni
0

Czesc, sam staram sie dobrze rozumiem slowo 'this' w jezyku programowania.

Kopiuj
class App {

		protected $controller = 'home';
		protected $method = 'index';
		protected $params = [];
			public function __construct(){

				$url = $this->parseUrl();

				if(file_exists('../'.$url[0].'.php')){
					$this->controller = $url[0];
					unset($url[0]);
				}
			}
			public function parseUrl(){
				if(isset($_GET['url'])){
					
					return $url = explode('/',filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));			
				}
			}
	}
 

Teraz jak ja tlumacze slowko 'this' w tym kodzie.

Kopiuj
$url = $this->parseUrl();

Do zmiennej $url w konstruktorze przypisujemy ta metode parseUrl(). Lecz tylko w tym konstruktorze.

Kopiuj
$this->controller = $url[0];

Atrybut dzialajacy w tym kontrolerze rowna sie zmiennej url ktora zdefiniowalismy wczesniej o indeksie tablicy tablicy $_GET 0 - czyli pierwszej, zaraz po znaku "/".

Jesli zle rozumiem kod, prosze o poprawienie mnie.

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0

Nie przypisujemy, tylko wywołujemy jak coś.
A niżej równa się - to mógłbyś powiedzieć przy sprawdzaniu czy się równa. W tym przypadku robisz przypisanie.

A swoją drogą FILTER_SANITIZE_URL z tego co widzę w dokumentacji nie uchroni Cię przed błędem directory traversal.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dziekuje bardzo za odpowiedz. Ucze sie dopiero, musi mi sie to wszystko poukladac w glowie. Jaka jest alternatywa, nowoczesniejsza metoda dla FILTER_SANITIZE_URL?

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.