2014-03-13 34 views
0

我得到我的WP儀表盤下面的錯誤此PHP代碼:有什麼不對的136線

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; 
} 
+1

get_site_transient返回什麼? – Ramesh

+1

如果您希望'response [$ plugin_file]'將變量轉換爲它的值,則需要雙引號而不是單引號 – danneth

+0

$ sr_plugin_info必須是寫入的Object或現有類名稱。 – Svetoslav

回答

1

看來,你在這行有錯誤:

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

property_exists - 檢查對象或類有一個屬性。

'response [$plugin_file]'它不是類的有效屬性名稱。

0

說實話,代碼是從幾處傷口流血。

一)get_site_transient不能保證返回一個對象,property_exists預計一個

灣)你嘗試檢查一個數組鍵與property_exists屬性存在。我很確定property_exists不能這樣做 - 你應該只檢查response屬性,並使用isset()作爲$plugin_file索引。

+0

這是使用早期版本的PHP。在過去,您可以使用property_exists來檢查對象的鍵是否存在。 –

-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; 
} 
+2

簡單地刪除一對aphostrophes並不能解決任何問題。這個答案會導致語法錯誤的代碼。 –

+0

你們提供的答案都沒有奏效。欣賞努力雖然:) – user3351714