在多个功能中使用同一个大型阵列而不冗余的正确方法? 我没有一个具体的情况,所以我认为这是一个普遍的问题。如果语言很重要,那么答案可能更倾向于PHP
如果我在多个函数中需要一个大数组(或其他数据类型)的数据,但这些数据不变,我应该如何使用这些数据?例如,可能我有一个数组在多个功能中使用同一个大型阵列而不冗余的正确方法? 我没有一个具体的情况,所以我认为这是一个普遍的问题。如果语言很重要,那么答案可能更倾向于PHP,php,global-variables,Php,Global Variables,如果我在多个函数中需要一个大数组(或其他数据类型)的数据,但这些数据不变,我应该如何使用这些数据?例如,可能我有一个数组 $states = array( "AL" => "Alabama", ... "WY" => "Wyoming" ); 显然,这个数组在短期内不需要更改。如果我有五个函数必须使用上述数组,那么最好的解决方案是什么?我的三个想
$states = array(
"AL" => "Alabama",
...
"WY" => "Wyoming"
);
显然,这个数组在短期内不需要更改。如果我有五个函数必须使用上述数组,那么最好的解决方案是什么?我的三个想法是:
- 将其声明为全局常量
- 将其传递到函数中
- 让它由函数返回吗
谢谢你们能给我的任何见解,伙计们 如果您坚持不使用globals(这确实是一个坏习惯!),那么您可以将其“隐藏”在函数中:
function get_state($state_code){
static $states = array(
"AL" => "Alabama",
...
"WY" => "Wyoming"
);
return $states[$state_code];
}
但是,在这种情况下,在我看来,使用全局数组很好,有点像在Java中创建一个Enam。如果您坚持不使用全局数组(这确实是一个坏习惯!),那么您可以将其“隐藏”在函数中:
function get_state($state_code){
static $states = array(
"AL" => "Alabama",
...
"WY" => "Wyoming"
);
return $states[$state_code];
}
但是,在这种情况下,在我看来,使用全局数组很好,有点像在Java中创建一个Enam。听起来像是一个包装类,以便将那些显然相关的函数捆绑在一起:
class CountryHelper {
protected static $states = array('AL' => ..., ...);
public function foo() {
self::$states ...
}
public function bar() {
self::$states ...
}
}
听起来像是一个包装类将那些显然相关的函数捆绑在一起:
class CountryHelper {
protected static $states = array('AL' => ..., ...);
public function foo() {
self::$states ...
}
public function bar() {
self::$states ...
}
}
我的一般建议是构建一个“服务提供者”类,类似于“从函数返回”选项。以下是一些具体想法:
- 将其声明为全局常量
- 将其传递到函数中
- 让它由函数返回吗
这种方法的一个好处是,在长时间运行的程序中,您可能很少需要数据。在这种情况下,服务提供商可能会被编写为从一些内存不足的持久性中获取值,并在不再需要时释放内存。不需要其他人负责内存管理同样,假设项目在增长,这些数据需要从数据库而不是静态数组加载……如果您集中了访问,这非常容易实现,并且您不需要在整个程序执行过程中都有大量内存,这些内存中的值几乎从来都不存在已访问。我的一般建议是构建一个“服务提供者”类,类似于“从函数返回”选项。以下是一些具体想法:
- 将其声明为全局常量
- 将其传递到函数中
- 让它由函数返回吗