関数にデータをハードコーディングすると、変数を正常に初期化できます。
function check_country() {
$countries = array(
'aa',
'ab',
'ae',
...
);
}
PHPはメモリ内のリテラルデータを$countries
指すだけですか、それともすべての初期化データを新しいZVALなどにコピーしますか?
基本的にこれと同等の後者を行うとしたら、そうではありませんか?
function check_country() {
$countries = array();
$countries[] = 'aa';
$countries[] = 'ab';
$countries[] = 'ae';
}
別の方法は、変数を静的にして、次のように初期化することです。
function check_country() {
static $countries;
if (!isset($countries))
{
$countries = array(
'aa',
'ab',
'ae',
...
);
}
}
この手法はa)より高速で、b)2倍のメモリを必要としますか?