在 WP 插件页面上调用非对象的成员函数
Call to a member function on a non-object on WP Plugin Page
我有以下代码以 Wordpress 插件页面的形式连接到 AWS PHP SDK。我在最后一个函数 (bz_page_file_path
) 中尝试使用 $MTurk
变量时收到 Call to a member function on a non-object
错误。我尝试过各种解决方案,例如 $global variables,但没有成功。我还确认,如果我将 bz_page_file_path
的内容移动到构造函数中,代码确实有效(因此它似乎可能是某种范围界定问题)。我该怎么做才能将其正确传递给函数?
<?php
class BZ_NamePicker {
// Constructor
function __construct() {
require_once dirname(__FILE__) . '/aws-autoloader.php';
$MTurk = new Aws\MTurk\MTurkClient([
...
]);
add_action( 'admin_menu', array( $this, 'bz_add_menu' ));
}
/* Action to load admin menu */
function bz_add_menu() {
add_menu_page('NamePicker', 'NamePicker', 'manage_options', 'namepicker-dashboard',
array(__CLASS__, 'bz_page_file_path'),
'dashicons-sticky','3');
}
/* Action to load content on admin webpage */
function bz_page_file_path() {
$accountBalance = $MTurk->getAccountBalance([]);
echo $accountBalance['AvailableBalance'];
}
}
new BZ_NamePicker();
<?php
class BZ_NamePicker {
// Constructor
function __construct() {
global $MTurk;
require_once dirname(__FILE__) . '/aws-autoloader.php';
$MTurk = new Aws\MTurk\MTurkClient([
...
]);
add_action( 'admin_menu', array( $this, 'bz_add_menu' ));
}
/* Action to load admin menu */
function bz_add_menu() {
add_menu_page('NamePicker', 'NamePicker', 'manage_options', 'namepicker-dashboard',
array(__CLASS__, 'bz_page_file_path'),
'dashicons-sticky','3');
}
/* Action to load content on admin webpage */
function bz_page_file_path() {
global $MTurk;
$accountBalance = $MTurk->getAccountBalance([]);
echo $accountBalance['AvailableBalance'];
}
}
new BZ_NamePicker();
您需要在要访问它的函数中调用 class 作为全局对象
我有以下代码以 Wordpress 插件页面的形式连接到 AWS PHP SDK。我在最后一个函数 (bz_page_file_path
) 中尝试使用 $MTurk
变量时收到 Call to a member function on a non-object
错误。我尝试过各种解决方案,例如 $global variables,但没有成功。我还确认,如果我将 bz_page_file_path
的内容移动到构造函数中,代码确实有效(因此它似乎可能是某种范围界定问题)。我该怎么做才能将其正确传递给函数?
<?php
class BZ_NamePicker {
// Constructor
function __construct() {
require_once dirname(__FILE__) . '/aws-autoloader.php';
$MTurk = new Aws\MTurk\MTurkClient([
...
]);
add_action( 'admin_menu', array( $this, 'bz_add_menu' ));
}
/* Action to load admin menu */
function bz_add_menu() {
add_menu_page('NamePicker', 'NamePicker', 'manage_options', 'namepicker-dashboard',
array(__CLASS__, 'bz_page_file_path'),
'dashicons-sticky','3');
}
/* Action to load content on admin webpage */
function bz_page_file_path() {
$accountBalance = $MTurk->getAccountBalance([]);
echo $accountBalance['AvailableBalance'];
}
}
new BZ_NamePicker();
<?php
class BZ_NamePicker {
// Constructor
function __construct() {
global $MTurk;
require_once dirname(__FILE__) . '/aws-autoloader.php';
$MTurk = new Aws\MTurk\MTurkClient([
...
]);
add_action( 'admin_menu', array( $this, 'bz_add_menu' ));
}
/* Action to load admin menu */
function bz_add_menu() {
add_menu_page('NamePicker', 'NamePicker', 'manage_options', 'namepicker-dashboard',
array(__CLASS__, 'bz_page_file_path'),
'dashicons-sticky','3');
}
/* Action to load content on admin webpage */
function bz_page_file_path() {
global $MTurk;
$accountBalance = $MTurk->getAccountBalance([]);
echo $accountBalance['AvailableBalance'];
}
}
new BZ_NamePicker();
您需要在要访问它的函数中调用 class 作为全局对象