Ich bin PHP als funktionale und Verfahrenssprache gelernt. Gerade jetzt versuchen Sie, objektorientiert zu lernen und haben eine wichtige Frage bekommen.Klasse funktioniert, ohne Variablen zu deklarieren?
Ich habe Code:
class car {
function set_car($model) {
$this->model = $model;
}
function check_model()
{
if($this->model == "Mercedes") echo "Good car";
}
}
$mycar = new car;
$mycar->set_car("Mercedes");
echo $mycar->check_model();
Warum es funktioniert ohne Angabe von $ Modell?
var $model;
am Anfang?
Weil in PHP "Auto-Deklaration" für beliebige Variablen funktioniert? Ich bin stecken
Ja, Sie können dies tun, aber es bedeutet nicht Sie * sollten *. Darf ich dem OP etwas davon erzählen? – liquorvicar
Can bedeutet nicht, dass Sie auch nicht, also was zu erklären? Es ist nicht definiert (dynamisches Mitglied), es ist öffentlich - beides wurde in der Antwort erwähnt. Worüber bist du besonders besorgt? – hakre
Ich glaube nicht, dass es ein sehr gutes OO-Design ist, es sei denn, es ist absolut notwendig (und selbst dann kämpfe ich um einen Fall, wenn es absolut notwendig ist). Angesichts der Tatsache, dass das OP für PHP neu ist (und ich vermute, dass es auch für OO neu ist), sollten wir nicht auf die Gefahren für ihn hinweisen und dass der Standardwert sein sollte, alle Klasseneigenschaften zu deklarieren. – liquorvicar