The allowsNull method look if arguments have a type. If a type is defined, null is allowed only if default value is null. <?php function myfunction ( $param ) { }echo (new ReflectionFunction("myfunction"))->getParameters()[0]->allowsNull() ? "true":"false";?>Result : true<?php function myfunction ( stdClass $param ) { }echo (new ReflectionFunction("myfunction"))->getParameters()[0]->allowsNull() ? "true":"false";?>Result : false<?phpfunction myfunction ( stdClass $param = null ) { }echo (new ReflectionFunction("myfunction"))->getParameters()[0]->allowsNull() ? "true":"false";?>Result : true