第136行的PHP代码有什么问题

时间:2014-03-13 13:01:14

标签: php wordpress function

我的WP控制台上出现以下错误:

Warning: First parameter must either be an object or the name of an existing class 
in /home/content/88/11746388/html/wp-content/plugins/pluginname/pluginname.php on 
line 136 

这些是从130到140的线条。任何想法?

function get_latest_version($plugin_file) {

    $latest_version = '';

    $sr_plugin_info = get_site_transient ( 'update_plugins' );
    // if ( property_exists($sr_plugin_info, 'response [$plugin_file]') && property_exists('response [$plugin_file]', 'new_version') ) {
    if ( property_exists($sr_plugin_info, 'response [$plugin_file]') ) {
        $latest_version = $sr_plugin_info->response [$plugin_file]->new_version;    
    }
    return $latest_version;
}

3 个答案:

答案 0 :(得分:1)

似乎你在这一行中有错误:

if ( property_exists($sr_plugin_info, 'response [$plugin_file]') ) {

property_exists - 检查对象或类是否具有属性。

'response [$plugin_file]'它不是类的有效属性名称。

答案 1 :(得分:0)

说实话,代码正在从几个伤口流血。

a。)get_site_transient不保证返回一个对象,而property_exists需要一个

b。)您尝试使用property_exists检查属性中是否存在数组键。我非常确定property_exists不能这样做 - 你应该只检查response属性并使用isset()作为$plugin_file索引。

答案 2 :(得分:-3)

function get_latest_version($plugin_file) {

    $latest_version = '';

    $sr_plugin_info = get_site_transient ( 'update_plugins' );
    // if ( property_exists($sr_plugin_info, response[$plugin_file]) && property_exists(response[$plugin_file], 'new_version') ) {
    if ( property_exists($sr_plugin_info, response[$plugin_file]) ) {
        $latest_version = $sr_plugin_info->response[$plugin_file]->new_version;    
    }
    return $latest_version;
}