Viewing file: LooseTypeCheck.php (1.52 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace JsonSchema\Constraints\TypeCheck;
class LooseTypeCheck implements TypeCheckInterface { public static function isObject($value) { return is_object($value) || (is_array($value) && (count($value) == 0 || self::isAssociativeArray($value))); }
public static function isArray($value) { return is_array($value) && (count($value) == 0 || !self::isAssociativeArray($value)); }
public static function propertyGet($value, $property) { if (is_object($value)) { return $value->{$property}; }
return $value[$property]; }
public static function propertySet(&$value, $property, $data) { if (is_object($value)) { $value->{$property} = $data; } else { $value[$property] = $data; } }
public static function propertyExists($value, $property) { if (is_object($value)) { return property_exists($value, $property); }
return array_key_exists($property, $value); }
public static function propertyCount($value) { if (is_object($value)) { return count(get_object_vars($value)); }
return count($value); }
/** * Check if the provided array is associative or not * * @param array $arr * * @return bool */ private static function isAssociativeArray($arr) { return array_keys($arr) !== range(0, count($arr) - 1); } }
|