public static function getValue($propertyName, $methodName)
    {
        $requestClass       = static::class;
        $abstractParamClass = static::BASE_PARAM_CLASS;

        // use the property if it exists in the corresponding method of the request class
        // this is the plural of the method name; as in getDefaultValue() calls getDefaultValues() here
        $requestValues = $requestClass::{$methodName.'s'}();

        if (array_key_exists($propertyName, $requestValues)) {
            return $requestValues[$propertyName];
        }

        // use the property if it exists in the $methodName() method of the Request Type -> Param class
        // for example, for a Data request, this looks in JasonRoman\NbaApi\Params\Data\<Property>Param
        $requestTypeParamClass = $abstractParamClass::getRequestTypeParamClass(
            $requestClass::getDomain(),
            $propertyName
        );

        // make sure the class exists and is an instance of the base param class
        if (class_exists($requestTypeParamClass) && is_subclass_of($requestTypeParamClass, $abstractParamClass)) {
            $requestTypeValue = $requestTypeParamClass::$methodName();

            // if the default is anything other than null, set the value
            if (!is_null($requestTypeValue)) {
                return $requestTypeValue;
            }
        }

        // use the property if it exists in the $methodName() method of the base Param class
        // for example, this looks in JasonRoman\NbaApi\Params\<Property>Param
        $paramClass = $abstractParamClass::getParamClass($propertyName);

        // make sure the class exists and is an instance of the base param class
        if (class_exists($paramClass) && is_subclass_of($paramClass, $abstractParamClass)) {
            $value = $paramClass::$methodName();

            // if the default is anything other than null, set the value
            if (!is_null($value)) {
                return $value;
            }
        }
    }
public static function getValue($propertyName, $methodName)
    {
        $requestClass       = static::class;
        $abstractParamClass = static::BASE_PARAM_CLASS;

        // use the property if it exists in the corresponding method of the request class
        // this is the plural of the method name; as in getDefaultValue() calls getDefaultValues() here
        $requestValues = $requestClass::{$methodName.'s'}();

        if (array_key_exists($propertyName, $requestValues)) {
            return $requestValues[$propertyName];
        }

        // use the property if it exists in the $methodName() method of the Request Type -> Param class
        // for example, for a Data request, this looks in JasonRoman\NbaApi\Params\Data\<Property>Param
        $requestTypeParamClass = $abstractParamClass::getRequestTypeParamClass(
            $requestClass::getDomain(),
            $propertyName
        );

        // make sure the class exists and is an instance of the base param class
        if (class_exists($requestTypeParamClass) && is_subclass_of($requestTypeParamClass, $abstractParamClass)) {
            $requestTypeValue = $requestTypeParamClass::$methodName();

            // if the default is anything other than null, set the value
            if (!is_null($requestTypeValue)) {
                return $requestTypeValue;
            }
        }

        // use the property if it exists in the $methodName() method of the base Param class
        // for example, this looks in JasonRoman\NbaApi\Params\<Property>Param
        $paramClass = $abstractParamClass::getParamClass($propertyName);

        // make sure the class exists and is an instance of the base param class
        if (class_exists($paramClass) && is_subclass_of($paramClass, $abstractParamClass)) {
            $value = $paramClass::$methodName();

            // if the default is anything other than null, set the value
            if (!is_null($value)) {
                return $value;
            }
        }
    }
public static function getValue ( $ propertyName , $ methodName ) { $ requestClass = static :: class ; $ abstractParamClass = static :: BASE_PARAM_CLASS ; // use the property if it exists in the corresponding method of the request class // this is the plural of the method name; as in getDefaultValue() calls getDefaultValues() here $ requestValues = $ requestClass :: { $ methodName . 's' } ( ) ; if ( array_key_exists ( $ propertyName , $ requestValues ) ) { return $ requestValues [ $ propertyName ] ; } // use the property if it exists in the $methodName() method of the Request Type -> Param class // for example, for a Data request, this looks in JasonRoman\NbaApi\Params\Data\<Property>Param $ requestTypeParamClass = $ abstractParamClass :: getRequestTypeParamClass ( $ requestClass :: getDomain ( ) , $ propertyName ) ; // make sure the class exists and is an instance of the base param class if ( class_exists ( $ requestTypeParamClass ) && is_subclass_of ( $ requestTypeParamClass , $ abstractParamClass ) ) { $ requestTypeValue = $ requestTypeParamClass :: $ methodName ( ) ; // if the default is anything other than null, set the value if ( ! is_null ( $ requestTypeValue ) ) { return $ requestTypeValue ; } } // use the property if it exists in the $methodName() method of the base Param class // for example, this looks in JasonRoman\NbaApi\Params\<Property>Param $ paramClass = $ abstractParamClass :: getParamClass ( $ propertyName ) ; // make sure the class exists and is an instance of the base param class if ( class_exists ( $ paramClass ) && is_subclass_of ( $ paramClass , $ abstractParamClass ) ) { $ value = $ paramClass :: $ methodName ( ) ; // if the default is anything other than null, set the value if ( ! is_null ( $ value ) ) { return $ value ; } } }
Get the value of a parameter according to the priority, stopping when a value at that priority is found.
Note that each param class does not have to specifically define this function; it rolls up to the base class.

Priority:
1. set in the {$methodName}s() method of the request class
2. set in the $methodName() method of the corresponding Request Type -> Param class
3. set in the $methodName() method of the global Request Type -> Param class

@param string $propertyName
@param string $methodName
@return mixed|null
Get the value of a parameter according to the priority stopping when a value at that priority is found . Note that each param class does not have to specifically define this function ; it rolls up to the base class .