我刚刚开始了解OOP并正在转换过程中的一个小型现有网站。我有一个庞大的全球数组($ countries),我存储国家代码,两种不同语言的名称,以及大约240个国家/地区的国际呼叫代码。我想创建一个类(Country),其方法可以从$ countries查找值。我是否需要将数组存储在类中,还是可以将其存储在单独的文件中?如果我可以将它放在一个单独的文件中,我将如何在我的方法中访问它?
答案 0 :(得分:1)
您绝对应该存储类代码之外的国家/地区列表,以避免每次更新列表时更改源代码。取决于您的用例,它可以是文件或数据库表。
您的查找类应该获取在构造数据时从何处加载数据的信息。
这样的事情:
class CountryProvider {
protected $countries = [];
public function __construct($dataFile)
{
$this->loadDataFromFile($dataFile);
}
protected function loadDataFromFile($dataFile)
{
// load your file here into $countries property
}
public function findCountryByCode($code)
{
// do your lookup here
}
}
$countryProvider = new CountryProvider('/path/to/your/file');
$country = $countryProvider->findCountryByCode('SOME_COUNTRY_CODE');
答案 1 :(得分:0)
是,从该文件返回数组,然后使用它:
$array = include('file.php')
http://php.net/manual/en/function.include.php
<强> file.php 强>
<?php
return array(
'name' => 'Josh Smith'
);
<强>的index.php 强>
<?php
$arr = include('file.php');
var_dump($arr);
Class Whatever
class Whatever {
public function getCountries() {
$arr = include('file.php');
return $arr;
}
}
$what = new Whatever();
$c = $what->getCountries();
var_dump($c);