title: oop PHP more than one constructors
body: <p>I am learning alone PHP from websites. I have some OOP background on other languages.
  <br/>
  <strong>Question 1:</strong>
  <br/>
  Is this the correct way to implement a constructor in PHP with 2 different set of parameters ?
  <br/>
  <strong>Question 2:</strong>
  <br/>
  When I'm coming to __set magic method in PHP I want that the comment_id in this class cannot be changed from __set function. Can this be possibly done in PHP?
  <br/></p>
  
  <pre><code> 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-&gt;image_id = $arguments[0];
                  this-&gt;author_id = $arguments[1];
                  this-&gt;comment_text = $argument[2];
                  break;
              case 5:
                  this-&gt;comment_id = $arguments[0];
                  this-&gt;image_id = $arguments[1];
                  this-&gt;author_id = $argument[2];
                  this-&gt;comment_text = $argument[3];
                  this-&gt;created_at = $argument[4];
                  break;
              default:
                  break;
  
          }
      }
  
      public function __get($property)
      {
          if(property_exists($this,$property))
          {
              return $this-&gt;$property;
          }
      }
  
      public function __set($property_name,$value)
      {
          if(property_exists($this,$property_name))
          {
              $this-&gt;$property_name = $value; 
          }
  
      }
      }
  </code></pre>