Je ne sais pas si cela est une question triviale, mais dans une classe PHP:créant Dynamiquement variables d'instance dans les classes PHP
MyClass:
class MyClass {
public $var1;
public $var2;
constructor() { ... }
public method1() {
// Dynamically create an instance variable
$this->var3 = "test"; // Public....?
}
}
principales:
$test = new MyClass();
$test->method1();
echo $test->var3; // Would return "test"
Est-ce que cela fonctionne? Comment ferais-je fonctionner ça? Ps. J'ai écrit ceci rapidement donc s'il vous plaît ne tenez pas compte des erreurs que j'ai faites avec la mise en place de la classe ou des méthodes d'appel!
EDIT Que diriez-vous de faire ces variables d'instance que je crée privé ??
EDIT 2 Merci à tous pour répondre - Tout le monde a raison - je viens testé moi-même, mais j'ai eu un examen le lendemain matin et avait cette pensée tout en étudiant que je voulais vérifier si travaillé. Les gens continuent à suggérer que sa mauvaise POO - peut-être mais cela permet un code élégant. Laissez-moi vous expliquer un peu et voir si vous le pensez encore. Voici ce que je suis venu avec:
//PHP User Model:
class User {
constructor() { ... }
public static find($uid) {
$db->connect(); // Connect to the database
$sql = "SELECT STATEMENT ...WHERE id=$uid LIMIT 1;";
$result = $db->query($sql); // Returns an associative array
$user = new User();
foreach ($result as $key=>$value)
$user->$$key = $value; //Creates a public variable of the key and sets it to value
$db->disconnect();
}
}
//PHP Controller:
function findUser($id) {
$User = User::find($id);
echo $User->name;
echo $User->phone;
//etc...
}
je aurais pu le mettre dans un tableau associatif mais je ne peux nommer jamais correctement ce tableau quelque chose de significatif (par exemple $ user-> data [ « nom »] .... laid.) De toute façon, vous devez savoir ce qui est dans la base de données, donc je ne comprends pas vraiment ce que l'argument est que c'est confus, d'autant plus que vous pouvez var var des objets pour le débogage.
duplication possible de [Pouvez-vous créer dynamiquement des propriétés d'instance en PHP?] (Http://stackoverflow.com/questions/829823/can-you-create-instance-properties-dynamically-in-php) – outis