【问题标题】:Is it worth saving an object property into a variable when accessed several times?多次访问时是否值得将对象属性保存到变量中?
【发布时间】:2017-07-10 03:14:11
【问题描述】:

特别是在 wordpress 中,我想知道:从循环中多次访问 $post->ID$post_id 变量中是否有意义?

我的意思是:$post_id = $post->ID

然后在函数中需要时总是调用$post_id

我基本上发现自己一直都在这样做,因为在 javascript 中可以节省内存。但是在这个 php/wordpress 上下文中也是如此吗?

【问题讨论】:

    标签: php wordpress performance memory


    【解决方案1】:

    在现代 PHP 中,添加 $post_id 变量如果只读取循环,则几乎不会影响内存。这两个变量的值在一个内存位置被引用,直到您修改其中一个变量,此时 PHP 将它复制到内存中的两个不同位置。这是referred to,即copy-on-write

    性能上的唯一区别可能是取消引用对象属性。成本(如果有的话)是如此之小以至于可以忽略不计。

    所以要回答您最初的问题,不,不值得添加另一个变量来获得性能。另请参阅this broad conversation 了解微优化。

    【讨论】:

    • 我猜这对于 $_POST ($_POST[name of data] vs $data = $_POST) 也是如此,对吗?
    • 是的,PHP 中的所有变量都是如此。
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多