code: public function compare($var1, $var2)
      {
          if ($var1 === $var2) {
              return 0;
          }
          if (is_object($var1) || is_object($var2)) {
              return self::compareObjects($var1, $var2);
          }
          if (is_array($var1) || is_array($var2)) {
              return self::compareArrays($var1, $var2);
          }
          if (is_string($var1) || is_string($var2)) {
              return strcmp($var1, $var2);
          }
          if ($var1 == $var2) {
              return self::compareTypes($var1, $var2);
          }
          
          return ($var1 > $var2) ? 1 : -1;
      }
docs: 二つの値を比較します.
  $var1 === $var2 の場合は 0 を返します.
  
  @param mixed $var1
  @param mixed $var2