Если в определении функции установлено значение по умолчанию, оно будет иметь значение nilble.
public function myMethod($argument = 'hello') {
// $argument is nillable
}
Если это не так, вы можете разместить свой код с блоками документов?
РЕДАКТИРОВАТЬ: Ваш пример кода многое проясняет.
Если вы посмотрите на Zend / Soap / Wsdl / Strategy / DefaultComplesType.php в строке 76, вы увидите следующее:
// If the default value is null, then this property is nillable.
if ($defaultProperties[$propertyName] === null) {
$element->setAttribute('nillable', 'true');
}
Это код, который определяет, является ли ваш атрибут «сложного типа» нулевым. Я бы попытался обновить ваш код, чтобы включить значение по умолчанию для строк. Что-то вроде:
class LoginReq {
/** @var string */
public $username = '';
/** @var string */
public $password = '';
}
Если вы сделаете это, === null
должен получить значение false. Убедитесь, что ваш код правильно обрабатывает данные.
Если это не сработает, дайте мне знать!