我继承了Laravel项目,但我仍在继续学习。我在代码中看到只有在W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)
W: Failed to fetch http://www.rabbitmq.com/debian/dists/testing/main/binary-amd64/Packages Undetermined Error [IP: 104.20.62.197 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
存在的情况下才检查运行块,但检查是否为:
$patient->records
那是多余的还是为空并且count()检查2个单独的东西?
编辑:已从if(! empty($patient->records) && $patient->records->count() > 0)
修正为> 1
答案 0 :(得分:1)
我认为这是多余的。 $ Patient-> records是一个集合。 我这样使用。
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
adView.loadAd(AdRequest.Builder().build())
答案 1 :(得分:1)
如果可能无法定义$病人或记录(假设是$病人的财产),则empty($patient->records)
很有用,因为$病人->记录->计数()本身会导致致命错误:
Uncaught Error: Call to a member function count() on null in ...
在if子句中使用empty($patient->records)
,即使在$病人或记录未定义的情况下,也可以避免致命错误。
空值表示正在检查$ Patient-> records是否已定义,而不是空值,而子句的count()部分是对count方法结果的更具体的检查。在$病人或记录未定义的情况下,该方法不可用。
答案 2 :(得分:0)
是的,这是多余的。
然后,为什么有人可以用这种方式编写代码?
可能是,在检查集合的长度之前,他想确保它不是null
,尽管在这种情况下我更喜欢使用is_null()
或isset()
方法。即使在他脑海中(那很安全),还是没有必要的。因为如果patient
和records
之间的关系定义正确(一对多=> hasMany()
),那么$patient->records
将始终返回集合,但永远不会返回null。即使它是一个空集合,您仍然可以安全地使用count()
方法,而无需检查records
是否为空,因为如果我们返回一个hasMany()
关系,它就永远不会为空。
什么是更好的解决方案
您可以使用相同的条件删除空的检查部分,如下所示:
if($patient->records->count() > 0)
为了使其更具可读性,Laravel集合为我们提供了一种非常不错的方法,称为isNotEmpty()
:
if($patient->records->isNotEmpty())
这是我更喜欢使用的。因为我们编写代码是为了让其他程序员(而非计算机)可读。计算机甚至可以理解二进制,但我们不会编写二进制。