从函数获取变量并传递给同一类中的另一个

我在该平台上的多个用户的帮助下,在一个类中编写了以下函数代码。效果很好。但是,我遇到了一个似乎无法解决的问题。

我想使用一个函数中的变量,然后将其用于另一个函数中。

这是我的代码:

<?php
include("/usr/local/cpanel/php/cpanel.php"); // Instantiate the CPANEL object.
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.

class CpanelAPI {

    public function get_db_restrictions($cpanel) {
        $cp_db_restrictions = $cpanel->uapi(
            'Mysql','get_restrictions'
        );
        $array = $cp_db_restrictions['cpanelresult']['result']['data'];
        $this->db_prefix = $array['prefix'] ?? 'No prefix';
        $this->max_database_name_length = $array['max_database_name_length'] ?? '12';
        $this->db_max_username_length = $array['max_username_length'] ?? '12';
    }

    public function get_domain_info($cpanel) {
        $cp_domaininfo = $cpanel->uapi(
        'DomainInfo','domains_data',array(
                'format'    => 'hash','return_https_redirect_status' => '1',)
        );
        $array = $cp_domaininfo['cpanelresult']['result']['data'];
        $this->main_domain = $array['main_domain']['domain'] ?? 'No main domain';
        $this->main_documentroot = $array['main_domain']['documentroot'] ?? '/home/';
        $this->addon_domains = $array['addon_domains'] ?? 'No addon domains';
        $this->sub_domains = $array['sub_domains'] ?? 'No subdomains';
    }

    public function get_mysql_db($cpanel) {
        $cp_list_databases = $cpanel->uapi(
            'Mysql','list_databases'
        );
        $array = $cp_list_databases['cpanelresult']['result']['data'];
        $this->next_db_name = max(array_map(function ($v) use ($this->db_prefix) { <!--HERE
            return (int)str_replace("{$this->db_prefix}wp",'',$v); <!--HERE
        },array_column($array,'database'))) + 1;
    }

}
$cpanelapi = new CpanelAPI;

$cpanelapi->get_db_restrictions($cpanel);
$cpanelapi->get_domain_info($cpanel);
$cpanelapi->get_mysql_db($cpanel);

?>
<pre>
<?php echo $cpanelapi->db_prefix; ?>

<?php echo $cpanelapi->max_database_name_length; ?>

<?php echo $cpanelapi->db_max_username_length; ?>

<?php echo $cpanelapi->main_domain; ?>

<?php echo $cpanelapi->addon_domains; ?>

<?php echo $cpanelapi->next_db_name; ?>
</pre>

您会注意到,我指示的按钮与<!--HERE不兼容。

我正在尝试使用$this->db_prefix从第一个函数获取数据库表前缀。

但这不起作用。

我尝试使用self和范围解析运算符::,但没有用,或者我做错了。

有什么想法吗?

编辑和解决方案:

因此,我使用此解决方案https://stackoverflow.com/a/44482181/1747477

找出了答案

导致的结果

public function get_mysql_db($cpanel) {
        $cp_list_databases = $cpanel->uapi(
            'Mysql','list_databases'
        );
        $array = $cp_list_databases['cpanelresult']['result']['data'];
        $prefix = $this->db_prefix;
        $this->next_db_name = max(array_map(function ($v) use ($prefix) { 
            return (int)str_replace("{$prefix}wp",$v);
        },'database'))) + 1;
    }
dfsfjhsd 回答:从函数获取变量并传递给同一类中的另一个

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3136185.html

大家都在问