original_string: 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;
              }
          }
      }
code: 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;
              }
          }
      }
code_tokens: 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 ; } } }
docstring: 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
docstring_tokens: 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 .