Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

LooseTypeCheck.php

Namespace

JsonSchema\Constraints\TypeCheck

File

vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/LooseTypeCheck.php

View source
<?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);
    }

}

Classes

Title Deprecated Summary
LooseTypeCheck

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal