Переменная не только должна быть указана, либо заюзана $var ?? null. Она и строгий тип должна иметь, где только возможно)
И тестами ещё покрыть, каб не прилетало там, где не надо)
PHP давно вырос уже в довольно серьёзный язык, над пользоваться фичами, конечно зависит от версии пыхи. Строгие типы решают много проблем.
declare(strict_types = 1);
/** @var array $myArray */
private array $myArray;
/**
* @param string $value
*/
public function(string $value): bool
{
return true;
}