Объекты типа stdClass
не имеют стандартных свойств, только пользовательские. Таким образом, у PhpStorm нет никакого очевидного способа выяснить, что предложить. Даже у человека будут проблемы, так как ваш код поступает из внешнего ввода, таким образом, может содержать что угодно.
Взлом с помощью заглушек может быть способом, но это повлияет на всю кодовую базу.
Возможное решение - объявить пользовательский объект в любом месте вашего проекта (код должен быть проанализирован PhpStorm, его даже не нужно выполнять):
class MandatoryPost extends stdClass
{
/**
* @var string
*/
public $first_name;
/**
* @var string
*/
public $last_name;
}
& hellip; и предоставить некоторые подсказки здесь и там:
/** @var MandatoryPost $mandatory */
$mandatory->
Однако, это похоже на полное излишество. Во-первых, единственная причина, по которой вы используете stdClass
, заключается в том, что вы выполняете сомнительную сериализацию JSON для того, что в противном случае является довольно процедурным кодом. Если вы хотите проверить использование объектов, создайте подходящий класс, который позаботится обо всем этом:
$user = User::createFromPost($_POST);
if ($user->isComplete()) {
}
... или просто все время работать с простыми массивами.