Php 是否需要在foreach循环之前存储explode()的结果?
如果只用于循环,是否需要存储Php 是否需要在foreach循环之前存储explode()的结果?,php,loops,explode,Php,Loops,Explode,如果只用于循环,是否需要存储explode()的结果 $lines = explode(PHP_EOL, $data); foreach ($lines as $line) { // do stuff } 有没有理由不直接在循环中调用它?explode()会被调用一次还是每次迭代调用一次 foreach (explode(PHP_EOL, $data) as $line) { // do stuff } explode()将仅在foreach循环中调用一次,如果您有非常大的代
explode()
的结果
$lines = explode(PHP_EOL, $data);
foreach ($lines as $line) {
// do stuff
}
有没有理由不直接在循环中调用它?explode()
会被调用一次还是每次迭代调用一次
foreach (explode(PHP_EOL, $data) as $line) {
// do stuff
}
explode()
将仅在foreach
循环中调用一次,如果您有非常大的代码,您将有两个选择:
1.优化/速度:
每个变量都有一些字节的内存,因此如果您有一个大型web应用程序,我建议在foreach
中调用explode()
,但是如果您的应用程序没有那么大,我认为分配一些字节不会有什么坏处
2.清洁剂代码:
第二个选项是干净的代码,如果将explode
分配给一个变量,它将对以后的使用非常有用,并且还将使调试更加容易
我还想推荐更多信息。explode()
将仅在foreach
循环中调用一次,如果您有非常大的代码,您将有两个选择:
1.优化/速度:
每个变量都有一些字节的内存,因此如果您有一个大型web应用程序,我建议在foreach
中调用explode()
,但是如果您的应用程序没有那么大,我认为分配一些字节不会有什么坏处
2.清洁剂代码:
第二个选项是干净的代码,如果将explode
分配给一个变量,它将对以后的使用非常有用,并且还将使调试更加容易
我还想推荐更多信息。我更喜欢每行只做一件事的干净代码。其他人没有。如果你想运行一些基准测试,你可以使用
microtime
来找出做这两种选择中的任何一种都会带来多大的伤害。你更喜欢干净的代码,每行只做一件事。其他人没有。如果你想运行一些基准测试,你可以使用microtime
来找出这两种方法对你的影响有多大option@ThisGuyHasTwoThumbs对不起,我想我已经提到了,在“更干净的代码”这一点上——毫无疑问——我的意思是,更清楚地说,分离变量也意味着你仍然有字符串:)但是tbf我想这是一个多余的点,will rm:)@这个人有两个大拇指对不起,但我想我已经提到了,在“更干净的代码”点中,你有-毫无疑问-我更重要的意思是,更清楚地说,分隔变量也意味着字符串仍然在tact:)但是tbf我想这是一个冗余点,will rm:)