private function validateReturnType(): void
  {
    // Return immediately if designation type is not appropriate for this method.
    if (!in_array($this->designationType, ['function', 'singleton0', 'singleton1'])) return;

    $types = explode('|', $this->returnType);
    $diff  = array_diff($types, ['string', 'int', 'float', 'double', 'bool', 'null']);

    if (!($this->returnType=='mixed' || $this->returnType=='bool' || empty($diff)))
    {
      throw new RoutineLoaderException("Return type must be 'mixed', 'bool', or a combination of 'int', 'float', 'string', and 'null'");
    }

    // The following tests are applicable for singleton0 routines only.
    if (!in_array($this->designationType, ['singleton0'])) return;

    // Return mixed is OK.
    if (in_array($this->returnType, ['bool', 'mixed'])) return;

    // In all other cases return type mus contain null.
    $parts = explode('|', $this->returnType);
    $key   = array_search('null', $parts);
    if ($key===false)
    {
      throw new RoutineLoaderException("Return type must be 'mixed', 'bool', or contain 'null' (with a combination of 'int', 'float', and 'string')");
    }
  }
private function validateReturnType(): void
  {
    // Return immediately if designation type is not appropriate for this method.
    if (!in_array($this->designationType, ['function', 'singleton0', 'singleton1'])) return;

    $types = explode('|', $this->returnType);
    $diff  = array_diff($types, ['string', 'int', 'float', 'double', 'bool', 'null']);

    if (!($this->returnType=='mixed' || $this->returnType=='bool' || empty($diff)))
    {
      throw new RoutineLoaderException("Return type must be 'mixed', 'bool', or a combination of 'int', 'float', 'string', and 'null'");
    }

    // The following tests are applicable for singleton0 routines only.
    if (!in_array($this->designationType, ['singleton0'])) return;

    // Return mixed is OK.
    if (in_array($this->returnType, ['bool', 'mixed'])) return;

    // In all other cases return type mus contain null.
    $parts = explode('|', $this->returnType);
    $key   = array_search('null', $parts);
    if ($key===false)
    {
      throw new RoutineLoaderException("Return type must be 'mixed', 'bool', or contain 'null' (with a combination of 'int', 'float', and 'string')");
    }
  }
private function validateReturnType ( ) : void { // Return immediately if designation type is not appropriate for this method. if ( ! in_array ( $ this -> designationType , [ 'function' , 'singleton0' , 'singleton1' ] ) ) return ; $ types = explode ( '|' , $ this -> returnType ) ; $ diff = array_diff ( $ types , [ 'string' , 'int' , 'float' , 'double' , 'bool' , 'null' ] ) ; if ( ! ( $ this -> returnType == 'mixed' || $ this -> returnType == 'bool' || empty ( $ diff ) ) ) { throw new RoutineLoaderException ( "Return type must be 'mixed', 'bool', or a combination of 'int', 'float', 'string', and 'null'" ) ; } // The following tests are applicable for singleton0 routines only. if ( ! in_array ( $ this -> designationType , [ 'singleton0' ] ) ) return ; // Return mixed is OK. if ( in_array ( $ this -> returnType , [ 'bool' , 'mixed' ] ) ) return ; // In all other cases return type mus contain null. $ parts = explode ( '|' , $ this -> returnType ) ; $ key = array_search ( 'null' , $ parts ) ; if ( $ key === false ) { throw new RoutineLoaderException ( "Return type must be 'mixed', 'bool', or contain 'null' (with a combination of 'int', 'float', and 'string')" ) ; } }
Validates the specified return type of the stored routine.
Validates the specified return type of the stored routine .