gpt4 book ai didi

php/apache2 - if (bug - discussion, finding an explanation) 简写

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:17 24 4
gpt4 key购买 nike

这是我无法解释的非常奇怪的事情,但可能你们中的一些人已经发现了相同或类似的问题?

想象一下下面的伪 PHP 代码:

<?PHP

mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query("SELECT id, my_name FROM my_table");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

$row[1] ? echo $row[1] : echo $row[0];

}

mysql_free_result($result);

?>

这基本上只是查询 mySQL 服务器并遍历所有记录集。然后它使用“速记”if 语句来查明 my_name 列中是否有内容。如果有,它将打印它,如果没有,它将打印id

现在奇怪的是,在 Debian Linux 虚拟机上,在 ESX5 上运行这个简写 if 比普通的 if{}else{} 语句花费 10 倍的时间。

因此,在我的情况下(迭代 5000 条记录)需要 3 秒,而在这个特定的 VM 上需要 30 秒——相同的代码在 ESX4 Debian 主机上运行得很好。

如果我用普通的 IF 语句替换简写 IF,一切都很好。

我在 Internet 上做了一些研究,但找不到解释。您将从哪里开始搜索问题?

谢谢!//马库斯

最佳答案

好吧,我的错 - 我应该在“失去理智”地使用它们之前阅读有关三元运算符的手册......

我将运算符更改为评论中提到的 Acyclic TauMTilsted 的正确格式:

$output .= ($row[1] ? $row[1] : $row[0]);

奇怪的速度问题已经消失 - 但下一个问题是为什么 PHP 不会因为语法错误而抛出异常?

关于php/apache2 - if (bug - discussion, finding an explanation) 简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19790530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com