Con funciones:
class Coche{
private $marca;
private $modelo;
private $velocidad;
//Crear las funciones que nos permitan poner y obtener valores
//En el caso de la velocidad el valor permitido está entre 50 y 300
//En el caso de marca y modelo comprobar que no esté vacío
function setMarca($marca){
if (!empty($marca)){
$this->marca=$marca;
}
}
function setModelo($modelo){
if (!empty($modelo)){
$this->modelo=$modelo;
}
}
function setVelocidad($velocidad){
if ($velocidad>=50 && $velocidad<=300){
$this->velocidad=$velocidad;
} else{
throw new Exception("La velocidad debe estar entre 50 y 300");
}
}
function getMarca(){
return $this->marca;
}
function getModelo(){
return $this->modelo;
}
function getVelocidad(){
return $this->velocidad;
}
}
$seat=new Coche();
$seat->setMarca("Seat");
$seat->setModelo("Panda");
$seat->setVelocidad(180);
print_r($seat);
Con __get y __set
<?php
class Coche {
private $marca;
private $modelo;
private $velocidad;
//Crear las funciones que nos permitan poner y obtener valores
//En el caso de la velocidad el valor permitido está entre 50 y 300
//En el caso de marca y modelo comprobar que no esté vacío
function __get($name) {
if (property_exists('Coche', $name)) {
return $this->$name;
}
}
function __set($name, $value) {
if ($name == "velocidad") {
if ($value >= 50 && $value <= 300) {
$this->velocidad = $value;
} else {
throw new Exception("La velocidad debe estar entre 50 y 300");
}
} else {
if (!empty($value) && property_exists('Coche', $name)) {
$this->$name = $value;
}
}
}
}
$seat = new Coche();
$seat->marca = "Seat";
$seat->modelo = "Panda";
$seat->velocidad = 180;
$seat->color="rojo";
echo $seat->modelo;
echo $seat->color;
print_r($seat);