Hola Camila Nova: una función no puede tener dos return. La función se ejecuta hasta llegar a un return, y en ese momento se devuelve el control al punto desde donde fue llamada.
El problema está aquí:
public function getProperties() {
return $this->prop1 . "<br />";
return $this->prop2 . "<br />";
}
Para devolver las dos propiedades tienes que hacerlo en un solo return:
public function getProperties() {
return $this->prop1 . "<br />". $this->prop2 . "<br />";
}
El código podría quedar así:
<meta charset = "utf-8" />
<?php
class Perro {
public $prop1 = "Soy un collie!!";
public $prop2 = "Cachupín";
public function setProperties($newval1, $newval2) {
$this->prop1 = $newval1;
if ($newval2) {$this->prop2 = $newval2;}
}
public function getProperties() {
return $this->prop1 . "<br />". $this->prop2 . "<br />";
}
}
$obj = new Perro;
$obj2 = new Perro;
echo $obj->getProperties();
echo $obj2->getProperties();
$obj->setProperties("Ahora soy un Terrier", "");
$obj2->setProperties("Soy parte de la segunda instancia!", "");
echo '<br/>Propiedades del objeto 1: '.$obj->getProperties();
echo '<br/>Propiedades del objeto 2: '.$obj2->getProperties();
?>
En realidad en general en programación orientada a objetos cada propiedad tiene un método distinto para recuperarse, es decir, tendrías un getProp1 y un getProp2.
Saludos.