在PHP中执行字符串连接的最佳方法是什么?

5
在PHP中,我们可以以多种方式添加字符串。
            Method 1
            ----------------------------
            $sql  = "SELECT field1, ";
            $sql .= "       field2, ";
            $sql .= "       field3, ";
            $sql .= "       field4, ";
            $sql .= "FROM   table1 ";
            $sql .= "WHERE  condition1 = '".$value."' " ;

            Method 2
            ----------------------------
            $sql  = 'SELECT field1, ';
            $sql .= '       field2, ';
            $sql .= '       field3, ';
            $sql .= '       field4, ';
            $sql .= 'FROM   table1 ';
            $sql .= 'WHERE  condition1 = "'.$value.'" ' ;

            Method 3
            ----------------------------
            $sql  = 'SELECT field1,
                           field2,
                           field3,
                           field4,
                    FROM   table1
                    WHERE  condition1 = "'.$value.'" ' ;

            Method 4
            ----------------------------
            $str = <<<HEREDOC
                    SELECT field1,
                           field2,
                           field3,
                           field4,
                    FROM   table1
                    WHERE  condition1 = "$value"
            HEREDOC;

上述方法中哪个是最佳方法?还有其他方法可以获得更好的性能吗?
4个回答

4

我支持使用方法 3

连接操作越少越好。

此外,应尽可能使用单引号,以避免PHP解析器在字符串内插入变量。


3
据我所知,没有“最佳方法”。
经验法则是选择你喜欢的一种方法并坚持使用,并在整个项目中保持一致。

从技术角度来看,拼接最少的解决方案不是“最佳方法”吗? - Russell Dias
我认为你说得对,Russell。任何最少连接的解决方案都是最好的。其余的只是风格问题和保持一致性。 - Michal M
如果你正在使用连接执行一百万次循环,那么这是有影响的。否则,试图微调和削减几个纳秒是毫无意义的努力。 - bcosca

2

创建查询本身并不会占用计算机的最小内存或CPU(它确实会占用,但数量很少,不会有影响),但运行查询时,您应该关注的是确保您拥有适当的索引等,以避免性能问题。


1

没有哪个更好。只需选择一个并坚持使用,PHP_CodeSniffer 可用于自动检查您的代码风格。


一个小提示给那位“我会点踩因为我喜欢单引号”的先生:http://www.brandonsavage.net/micro-optimizations-that-dont-matter/ - Arkh
微优化的好文章。 - T.P.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接