Código
class myClass { private $variable_1; private $variable_2; private $variable_3; private function generate($myClass) { $this->variable_1 = $myClass->variable_1; $this->variable_2 = $myClass->variable_2; $this->variable_3 = $myClass->variable_3; } private function addInformation($stmt) { $i = 0; $stmt->bind_result($variable_1, $variable_2, $variable_3); while ($stmt->fetch()) { $arrayStaff[$i] = new myClass(); $arrayStaff[$i]->setVariable1($variable_1); $arrayStaff[$i]->setVariable2($variable_2); $arrayStaff[$i]->setVariable3($variable_3); $i++; } return $arrayStaff; } public function StaffFromId($id) { $mysqli = $this->aet->getAetSql(); $exit = FALSE; if ($stmt = $mysqli->prepare("SELECT * FROM staff WHERE id = ? LIMIT 1")) { $stmt->bind_param('i', $id); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows === 1) { $arrayStaff = $this->addInformation($stmt); $this->generate($arrayStaff[0]); $exit = TRUE; } } return $exit; } public function setVariableX($variable_X) { $this->variable_X = $variable_X; } public function getVariableX() { return $this->variable_X; } }
Si no me equivoco lo siguiente también funciona y no hace falta tener 2 funciones que hacen lo mismo, no?
Código
private function addInformation($stmt) { $stmt->bind_result($variable_1, $variable_2, $variable_3); $stmt->fetch(); $this->setVariable1($variable_1); $this->setVariable2($variable_2); $this->setVariable3($variable_3); }
O directamente:
Código
$this->variable_1 = $variable_1;
Mi conocimiento todavia es limitado por lo que ¿hay alguna razón por la que se hizo eso asi? ¿Tal vez implementar más cosas que necesiten eso? La clase la hizo un amigo con el que no he podido volver a hablar.
Gracias!