PHP 객체 지향 프로그래밍에서 쓰기 시 속성 검증

__set 메서드를 사용하여 속성 값이 특정 조건에 부합하는지 검증해 봅시다:

Test.php<?php
  class Test
  {
    private $prop1;
    private $prop2;
    
    public function __set($property, $value)
    {
      switch($property) {
        case 'prop1':
          if ($value > 0 and $value < 10) {
            $this->$property = $value;
          }
        break;
        case 'prop2':
          if ($value > 10 and $value < 20) {
            $this->$property = $value;
          }
        break;
        default:
          echo 'property not exists';
        break;
      }
    }
    
    public function __get($property)
    {
      return $this->$property;
    }
  }
?>