Есть другие способы сделать это, но они не являются какой-либо «лучше», чем друг-друга. PHP дает вам сообщение об ошибке, и ваше предлагаемое решение на самом деле не устраняет проблему, оно просто добавляет немного кода, чтобы избежать его запуска.
Фактическая ошибка, о которой PHP пытается рассказать вам, заключается в том, что вы попали в ситуацию, когда пытаетесь выполнить строку кода, не зная состояния тех вещей, которые вы передаете в нее. Вкратце: PHP жалуется, что $user
не определено, потому что вы на самом деле не определили какое-либо значение для $user
.
Есть несколько решений здесь, имеющих равную юридическую силу (и все по существу разные способы сделать ту же самую основную вещь):
- Убедитесь, что этот бит кода не будет вызвана, если
$user
не определен. Я ожидаю, что у вас на самом деле есть несколько похожих строк, поэтому вы можете разделить все эти два на более крупные «если определены $user
» и «если не определены».
- Загрузите массив «значений по умолчанию», чтобы передать, и не переопределяют значения этих умолчанию, если
$user
не определен
- Убедитесь, что
$user
всегда определяется, но загрузить его со значениями по умолчанию, если реальный $user
Безразлично» t существует.
почему необходимо в вызове функции? –
Этот вопрос будет улучшен путем добавления точного сообщения об ошибке, которое вы получите. Это позволило бы людям с подобными проблемами найти ваш вопрос (и связанные с ним ответы) в будущем. –