Menu

Metode si functii statice

Vreau sa incep acest articol prin a spune ca eu nu recomand folosirea metodelor si proprietatilor statice, este mult mai frumos un cod in care se folosesc obiecte si nu direct clasele, o sa vedeti mai jos la ce ma refer.
Este necesar sa invatati si despre acestea deoarece sunt folosite de multe ori in unele scripturi si trebuie sa stiti si voi despre ce este vorba acolo.
Metodele si proprietatile statice reprezinta apelarea lor fara sa avem nevoie de un obiect, le apelam direct cu ajutorul claselor.


Dupa cum sititi o noi apelam o metoda/functie a unui obiect punand obiectul urmat de -> iar dupa aceea numele metodei/proprietatii. Cand apelam o proprietate statica punem numele clasei urmat de ::(de doua ori :) iar dupa numele proprietatii(variabilei), dar atentie: variabila trebuie sa inceapa cu semnul $ spre deosebire de obiecte unde nu trebuie sa mai punem semnul $.
Mai jos veti vedea un exemplu, am folosit un singur fisier pentru a nu complica lucrurile.

Cod test.php:
<?php 
# fisier: /test.php

// Cream clasa cu numele Exemplu
class Exemplu{
	# Pentru a declara o proprietate punem static in fata
	static public $proprietate = 'Valoarea proprietatii statice';

	# Pentru a declara o functie statica punem static in fata
	static public function metoda(){
		# Folosim constanta __FUNCTION__ pentru a afla numele functiei in care ne aflam
		# Folosim constanta __CLASS__ pentru a afla numele clasei in care ne aflam
		echo '<br/><br/>A fost executata metoda statica <b>'.__FUNCTION__.'</b> din clasa <b>'.__CLASS__.'</b> <br/>';
	}
}

# Observati modul de apelare
echo Exemplu::$proprietate;

# Observati ca nu mai avem nevoie de o instanta a clasei
Exemplu::metoda();
?>
Output:



Cand suntem in clasa respectiva accesam metoda sau proprietatea cu ajutorul self::$proprietate sau self::metoda(). Exemplu:
<?php  
class Exemplu{
	static $limbaj = 'PHP';
	
	public function arata(){
		# Cand suntem in clasa respectiva le accesam cu self::
		echo self::$limbaj;
	} 
}

$obj = new Exemplu;

$obj->arata();
?>
Output:



Ti-a placut articolul? Asigura-te ca-ti dam de veste cand publicam altele noi.


Tags: Tutoriale, Programare Web, Php, Curs Php

Comments Nota 0 din 0