WpQuery属性LAST_QUERY和LAST_RESULT:这些属性应该是公共的还是私有的?

时间:2014-09-10 作者:John Sonderson

我在中遇到了以下几行代码wp-includes/wp-db.php:

/**
 * Last query made
 *
 * @since 0.71
 * @access private
 * @var array
 */
var $last_query;

/**
 * Results of the last query made
 *
 * @since 0.71
 * @access private
 * @var array|null
 */
var $last_result;
我想知道,既然用var声明的变量在默认情况下是公共的,那么here, 文档中是否有错误,以及此代码中的var是否应更改为private或public。

谢谢

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

正如您可以从版本号猜到的,这段代码很古老。如此古老事实上var 关键字来自PHP 4 在PHP 5中被弃用(被认为是public 向后兼容性)。

所以内联文档暗示它是私有的,因为在PHP语言中,当时并没有实际的属性可见性。

因此,从概念上讲,它可能在现代代码中受到保护(那么它可能需要getter,因为这两个属性对于调试非常有用)。

实际上,这些将永远是事实上的公开,因为将它们更改为私有/受保护将意味着破坏向后兼容性,WordPress坚决反对向后兼容性。

结束

相关推荐

Hook into $wpdb

有没有办法连接到WPDB实例($WPDB)?我基本上想要的是在执行所需的查询get之前执行自己的函数。这可能吗?第一个答案的附加评论问题: $query = $wpdb->prepare(\"SELECT * FROM \" . $wpdb->prefix . \"test WHERE type = %s and ip = %s\", $type, $ip_full_log); $fetch = $wpdb->get_results($query, ARRAY_A)