$fail_row = mysql_fetch_array($sql_fail_check);
$tries = $time_row['tries'];
我正在读它,它可以节省内存来做内联/少行。因为我只需要从那个MySql数组中获取计数,我能不能以某种方式将它变成一行?
答案 0 :(得分:5)
忘记这条建议 - 这完全是胡说八道。
重新更新:advice you quote建议压缩
$description = strip_tags($_POST['description']);
echo $description;
进入
echo strip_tags($_POST['description']);
这对非常大数据量有意义,因为将值存储在变量($description
)中的步骤会使存储description
所需的内存量翻倍,这可能导致内存限制问题。
但是,在你的情况下,
没有优雅的方法来直接处理来自函数调用的数组中的元素(如$tries = mysql_fetch_array($sql_fail_check)["tries"];
) - 从语法上讲它是不可能的。
tries
可能永远不会大到足以让这种优化产生任何差异。
请记住:仅在必要时进行优化,或者如果您知道自己将要处理大量数据。除非是这种情况,否则代码可读性始终是第一位的。
答案 1 :(得分:3)
实际上,如果我理解这一点,那么:执行$a = 1; $b = $a;
将不会使用两倍的内存,因为这只意味着$a
和$b
都指向同一地址存储器中。
只有在您现在更改$a
或$b
时才会分配新空间。
答案 2 :(得分:2)
你可以这样做:
$tries = mysql_fetch_object($sql_fail_check)->tries;
答案 3 :(得分:1)
是的,你可以组合两条线。鉴于tries
是第一个SELECT
ed列,您可以执行以下操作:
list($tries) = mysql_fetch_num($result);
有关阵列解除引用的更多信息,请参阅this answer(这就是他们称之为您尝试做的事情)。
PS:使用PDO的另一个原因,你只需写下:
$tries = $pdo->query('SELECT tries FROM table')->fetchColumn(0);