PHP功能和服务器效率

PHP功能和服务器效率,php,performance,function,server,Php,Performance,Function,Server,因此,如果我有以下代码: <?php function someFunction() { //lots of lines of code } if ($someBooleanVariable) { //some random code } else { someFunction(); } ?> 问题1:我是否正确地假设服务器将首先加载整个功能,然后甚至可能不使用它 问题2:如果是这样的话,将函数代码放在前面代码中的else后面的括号“{}”中不是更有

因此,如果我有以下代码:

<?php
function someFunction()
{
    //lots of lines of code
}

if ($someBooleanVariable)
{
    //some random code
}
else
{
    someFunction();
}

?>

问题1:我是否正确地假设服务器将首先加载整个功能,然后甚至可能不使用它

问题2:如果是这样的话,将函数代码放在前面代码中的else后面的括号“{}”中不是更有效吗?(假设代码只运行一次,不需要在其他任何地方使用)


由于代码只有在“$someBooleanVariable”为FALSE时才会加载和运行,因此我假设,如果代码不在函数中,而是在“else”后面的括号中,服务器的使用就会减少。然而,我的假设是服务器每次都自动加载函数代码,因为它位于页面顶部,这可能是问题的根源。

PHP必须解析整个文件,从中创建一些表示源代码的字节码,然后执行该字节码

无论您将函数放在何处,它都将被解析并生成字节码

一旦它是字节码,执行路径可能会有所不同,也就是说,函数可能不会被调用,但我看不出这只会产生微小的差异

总之,你是在问关于微优化的问题。如果您可以编写代码,清楚地证明一种方法优于另一种方法,并且速度差异显著(即,速度比另一种方法快10%以上),并且代码可读性没有显著下降,那么您就有了一个合理的理由


我认为你的案子没有根据。函数将被独立地解析,与它的放置位置无关,并且仅当代码路径指向那里时才执行。

值得注意的是,将函数定义放在else{}中意味着在该点之前,它不会被代码注册以供使用。如果它从未被触发,这可能会节省大量的处理。有充分的理由将函数声明与实际的代码路径区别对待——这使代码对人类读者来说更加清晰易懂,这是至关重要的。其他一切都可以通过引擎进行优化。我会更进一步,在助手类中使用静态方法,而不是到处使用单独的函数。让自动加载器处理:)避免静态方法。有点笼统的说法。。。遗憾的是,您键入此问题的时间可能比服务器通过优化此行为在一千年的操作中节省的时间还要多。