Php 在另一个类中使用一个类的输出的正确方法

Php 在另一个类中使用一个类的输出的正确方法,php,Php,我使用以下代码生成数组: // Create new customer object $customers = new customers; // Array of user ids $customers->ids = array(34,23,78); // Process customers $customers->processCustomers(); 上面的代码将根据传递给它的用户输出一个包含所需用户信息的数组 现在,我需要在以下代码中对此新客户阵列采取进一步的操作

我使用以下代码生成数组:

// Create new customer object
$customers = new customers;

// Array of user ids 
$customers->ids = array(34,23,78);  

// Process customers
$customers->processCustomers();
上面的代码将根据传递给它的用户输出一个包含所需用户信息的数组

现在,我需要在以下代码中对此新客户阵列采取进一步的操作:

// Create new parsing object
$parseCustomers = new parse;

// Array of customer data 
$parseCustomers->customers = ???????????    

// Finalize new transaction
$parseCustomers->finalizeTransaction();
我需要将数组从第一类输出传递到第二类输出,我想知道什么是最佳实践。


这个客户数组有时可能非常大,因此理想情况下,我在任何时候都不会有两个变量包含相同的数组。

如果您指的是来自
$customers
对象的已处理数组,则需要一些公共方法来获取该数据

假设您有一个公共方法
getData()
。您的代码将如下所示

// Create new parsing object
$parseCustomers = new parse;

// Array of customer data 
$parseCustomers->customers = $customers->getData();    

// Finalize new transaction
$parseCustomers->finalizeTransaction();

有几种不同的方法可以处理这个问题。这里有两个:

  • 您可以从类中返回MySQL结果集。我将使用运行您的查询,以便只在您需要记录时使用内存

  • 当您获取结果时,您可以通过引用传递给您的客户:

  • 以下是#2的代码:

    您的函数声明将更改为:

    function finalsizeTransaction(&$arrCustomers) {
    
        // Do your processing
    
    }
    
    这将允许您使用一个客户阵列,消除重复。如果您处理的数据集非常大,以至于在内存不足时会导致PHP出错,我会使用无缓冲查询方法


    希望有帮助

    对,这是显而易见的方法,我在应用程序中也是这样做的,但问题是现在内存中有两个数组。我想这是个坏习惯。
    function finalsizeTransaction(&$arrCustomers) {
    
        // Do your processing
    
    }