These types declarations can only be used within classes.
   The value must be an instanceof the same class as the one
   in which the type declaration is used.
  
   The value must be an instanceof a parent of the class
   in which the type declaration is used.
  
   static is a return-only type which requires that the
   value returned must be an instanceof the same class as the one
   the method is called in.
   Available as of PHP 8.0.0.