Я изучаю только PHP с веб-сайтов. У меня есть фон ООП на других языках.
Вопрос 1:
Является ли это правильный способ реализовать конструктор в PHP с 2 разным набором параметров?
Вопрос 2:
Когда я иду в __set магического метода в PHP Я хочу, чтобы comment_id в этом классе не может быть изменен с __set функции. Возможно ли это сделать в PHP?
oop PHP несколько конструкторов
class Comment{
private $comment_id;
private $image_id;
private $author_id;
private $comment_text;
private $created_at;
public function __construct()
{
$arguments = func_get_args();
$num = sizeof($arguments)
switch($num)
{
case 0;
break;
case 3:
this->image_id = $arguments[0];
this->author_id = $arguments[1];
this->comment_text = $argument[2];
break;
case 5:
this->comment_id = $arguments[0];
this->image_id = $arguments[1];
this->author_id = $argument[2];
this->comment_text = $argument[3];
this->created_at = $argument[4];
break;
default:
break;
}
}
public function __get($property)
{
if(property_exists($this,$property))
{
return $this->$property;
}
}
public function __set($property_name,$value)
{
if(property_exists($this,$property_name))
{
$this->$property_name = $value;
}
}
}
Pls Проверьте этот http://stackoverflow.com/questions/2169448/why-cant-i-overload-constructors-in-php – Sethunath
возможный дубликат [Лучший способ сделать несколько конструкторов в PHP] (http: // stackoverflow.com/questions/1699796/best-way-to-do-multiple-constructors-in-php) – Gordon
Это просто ужасная практика, когда она подходит к надлежащему ООП –