1) Почему статика? В общем случае статические классы плохой тон, так как повышают неконсистентность системы и непредсказуемость поведения.
2) Да, можно задать анонимный класс, но делать это в конструкторе.
<?php
class Curs{
public $currencies;
function __construct($curencyArray){
$this->currencies = new class($curencyArray){
function __construct($arr){
foreach($arr as $crn){
$this->{strtolower($crn['code_cur'])} = (object)$crn;
}
}
};
}
};
$currencies = [
['name_cur'=>'Рублей','short_cur'=>'₽','code_cur'=>'RUB','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
['name_cur'=>'Dollar','short_cur'=>'$','code_cur'=>'USD','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
['name_cur'=>'Euro','short_cur'=>'€','code_cur'=>'EUR','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
['name_cur'=>'Pound','short_cur'=>'£','code_cur'=>'GBP','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
['name_cur'=>'円','short_cur'=>'¥','code_cur'=>'JPY','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
['name_cur'=>'元','short_cur'=>'Ұ','code_cur'=>'CNY','ratio_cur'=>1,'default_cur'=>1,'display_cur'=>1,],
];
$curs = new Curs($currencies);
var_dump($curs->currencies->usd);
/*
object(stdClass)#4 (6) {
["name_cur"]=>
string(6) "Dollar"
["short_cur"]=>
string(1) "$"
["code_cur"]=>
string(3) "USD"
["ratio_cur"]=>
int(1)
["default_cur"]=>
int(1)
["display_cur"]=>
int(1)
}
*/
или в любой другой конфигурации...