View on GitHub

apunts

Apunts DWES

Classes i objectes en PHP

Introducció

Exemple connexió BBDD amb mysqli:

// utilitzant programació estructurada

 	$dwes = mysqli_connect(...);

// utilitzant POO

 	$dwes = new mysqli();
	$dwes->connect(...)

Classes en PHP

class cotxe {
	protected $matricula;
	protected $marca;
	
	public function ultimo_viaje(){
	}
}

Bones pràctiques (encara que no obligatòries)

Objectes

Accedir als seus atributs i mètodes

$p = new Producte;
$p->nom = 'Samsung Galaxy S';
$p->mostra();

L’objecte $this

print "\<p>" . $this->codigo . "\</p>";
Constructor

Mètodes màgics

Video

Mètodes màgics

public string __toString( void ):string,__invoke()

__get(),__set(),__unset(),__isset()

Herència

Video

Classes i mètodes abstractes

Video

Atributs i funcions statiques

class Coche{
	private static numRodes = 4;
	
	public static function getNumRodes()
	{
		return self::numRodes;
	}
}

echo Coche::getNumRodes();

Cridar a mètodes de la classe base

Interfícies

Exemple

Exempcions

Video

La classes Exception

Exempcions definides per l’usuari

Altra opció per a indicar un error és llançar una exempció.

Exemple
<?php

	class DivisionByZero extends exception{
			protected $message = "El segundo argumento es 0";
	}
	
	function dividir($a, $b){
		if ($b==0){
			throw new DivisionByZero;
		}
		return $a/$b;
	}
	try{
		$resul1 = dividir(5, 0);
		echo "Resul 1 $resul1". "<br>";
	}catch(DivisionByZero $e){
		echo "Excepción: ". $e->getMessage(). "<br>";
	}finally{
		echo "Primer finally<br>";		
	}
	
	try{
		$resul2 = dividir(5, 2);
		echo "Resul 2 $resul2". "<br>";
	}catch(DivisionByZero $e){
		echo "Excepción: ". $e->getMessage(). "<br>";
	}finally{
		echo "Segundo finally";		
	}

En la primera crida a dividir es produeix una exempció i s’executen el bloc catch i finally. En el segon s’executa el try i el finally.