Php 在_array()或大型(如果有条件)中使用更快?
我在循环中检查一个字符串是否等于另一个字符串。简单的东西 然而,我似乎一直在添加要检查的字符串,并且在每个循环中都有十个不同的字符串要检查。在代码方面,只需创建一个字符串数组进行检查,然后在_数组中执行操作,就更容易了;,但我想知道哪一个会解析得更快,使用更少的系统资源 排列 字符串!=串Php 在_array()或大型(如果有条件)中使用更快?,php,arrays,Php,Arrays,我在循环中检查一个字符串是否等于另一个字符串。简单的东西 然而,我似乎一直在添加要检查的字符串,并且在每个循环中都有十个不同的字符串要检查。在代码方面,只需创建一个字符串数组进行检查,然后在_数组中执行操作,就更容易了;,但我想知道哪一个会解析得更快,使用更少的系统资源 排列 字符串!=串 差异可能可以忽略不计,只是为了将来参考。使用第一个。速度上不会有太大差别,但可读性才是真正的差别 CPU周期很便宜。程序员的工作时间不是很长。使用第一个。速度上不会有太大差别,但可读性才是真正的差别 CPU周
差异可能可以忽略不计,只是为了将来参考。使用第一个。速度上不会有太大差别,但可读性才是真正的差别
CPU周期很便宜。程序员的工作时间不是很长。使用第一个。速度上不会有太大差别,但可读性才是真正的差别
CPU周期很便宜。程序员的工作时间并非如此。内置函数总是更快,因为它们是用C代码编译的。必须对PHP代码进行解释 如果您真的关心CPU周期,isset是最快的,所以将可能的值设置为数组键将是最快的方法。当然,CPU和内存的使用是有区别的,所以哪种使用更少的系统资源取决于您想要保存哪些资源
正如@Kendall-Frey所说,这是一种微观优化,所以请保持代码可读性,不要做任何优化工作,除非profiler显示此代码对执行有很大影响。内置函数总是更快,因为它们是用C代码编译的。必须对PHP代码进行解释 如果您真的关心CPU周期,isset是最快的,所以将可能的值设置为数组键将是最快的方法。当然,CPU和内存的使用是有区别的,所以哪种使用更少的系统资源取决于您想要保存哪些资源
正如@Kendall Frey所说,这是微观优化,所以保持代码可读性,不要做任何优化工作,除非profiler显示此代码对执行有很大影响。如果$hideme数组变大,最简单的解决方案可能是最快的扩展方法是使用isset
$hideme = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
"style.css", "highlighter.css", "highlighter.js", "users");
if (!isset($hideme[$sub])) {
// $sub is not in $hideme
}
对于小型阵列,in_阵列工作正常,但通常较慢,如果阵列较大,可能会变得太慢。如果$hideme阵列变大,最简单的解决方案可能也是最快的扩展方案是使用isset
$hideme = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
"style.css", "highlighter.css", "highlighter.js", "users");
if (!isset($hideme[$sub])) {
// $sub is not in $hideme
}
对于小型阵列,in_阵列工作正常,但通常较慢,如果阵列较大,可能会变得太慢。不用担心。对于小n,阵列的速度会慢得可以忽略,例如,这无关紧要。别担心。。对于较大的n,一个集合将显著更快。在这两种情况下,对于上面的任意n,例如2-3,使用数组/集合将导致更干净的代码。不要担心。对于小n,阵列的速度会慢得可以忽略,例如,这无关紧要。别担心。。对于较大的n,一个集合将显著更快。在这两种情况下,对于上面的任意n,例如2-3,使用数组/集合将产生更干净的代码。
$hideme = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
"style.css", "highlighter.css", "highlighter.js", "users");
if (!isset($hideme[$sub])) {
// $sub is not in $hideme
}