Да, это избыточно.
Тогда почему кто-то может написать код таким образом?
Может быть, перед проверкой длины коллекции он хотел убедиться, что это не null
, хотя в этом случае я предпочитаю использовать метод is_null()
или isset()
. Даже если это (нулевой сейф) было в его уме, все равно это не нужно. Потому что, если отношения между patient
и records
определены правильно (один ко многим => hasMany()
), тогда $patient->records
всегда будет возвращать коллекцию, но никогда не будет нулевым. Даже если это пустая коллекция, вы все равно можете безопасно использовать метод count()
, даже не проверяя, является ли records
нулевым или нет, потому что он никогда не будет нулевым, если мы вернем отношение hasMany()
.
Что может быть лучшим решением
Вы можете просто использовать это же условие, удаляя пустую проверочную часть, как показано ниже:
if($patient->records->count() > 0)
Чтобы сделать его более читабельным, коллекция Laravel предлагает нам очень хороший метод под названием isNotEmpty()
:
if($patient->records->isNotEmpty())
Это то, что я предпочитаю использовать. Потому что мы пишем код, чтобы сделать его читаемым для других программистов / нас, а не для компьютера. Компьютер может даже понимать двоичный код, но мы не пишем двоичный.