这是一个很好的问题。有一条简单但不那么干净的路要走,还有一条更干净但更复杂的路要走。
简单、肮脏的方式,您可以在PHP中声明全局变量,这些变量将在本页面加载中的PHP中的任何位置可用。例如,第一次打电话时,你可以说:
global $store_last_order;
$store_last_order = wc_get_customer_last_order();
然后,任何时候需要最后一个订单而不是再次调用该函数时,只需使用以下命令:
global $store_last_order; // get access to this again
do_something($store_last_order);
Good things: 这是快速而简单的。
Bad things: 你必须确保你知道变量首先在哪里使用,所以你首先在那个地方设置它,然后其他地方使用它,或者在任何人使用它之前设置一次。
更好的是,您还可以使用PHP数组来传递所需的所有信息。E、 g.在函数顶部做一次。php或其他需要它的地方:
$important_stuff = [ \'last_order\' => get_last_order(),
\'customer_info\' => get_customer_info() ]
....
];
然后,无论何时需要这些东西,请确保您以某种方式可以访问$important\\u内容(在函数调用中传递它,或者如果必须的话,将其设置为全局),然后执行以下操作:
do_something($important_stuff[\'last_order\']) ; // e.g. to get last_order
**很好**这更简洁、快速、更易于编写
**坏**如果规模过大,可能会失控。你必须到处传递对$important\\u东西的引用
最好的、更复杂的是,您可以编写自己的PHP类,该类负责存储所有这些信息,如果还没有信息,则负责获取这些信息。
E、 g.:
$myStore = get_my_data_store();
$last_order = $myStore->get_last_order();
那么在这个类中,它可能会做一些类似的事情:
function get_last_order() {
if (already got the last order before) {
return last order;
} else {
get last order
return last order;
}
}
Good: 这是一个更干净的代码,如果您以后扩展它,它的可扩展性会更好,从而节省您的资金和时间。您将成为一名更好的开发人员,并且将来能够更快地完成更多的工作
Bad: 这需要编写更多的代码,您必须学习PHP单例和在PHP中使用类之类的知识