Установить свойство в статическом классе
У меня есть этот код:
<?php
class test {
public static function plus($input) {
$conf = variable_get('config');
$b = $conf['var'];
return (int)$input + (int)$b;
}
public static function minus($input) {
$conf = variable_get('config');
$b = $conf['var'];
return (int)$input - (int)$b;
}
}
вместо звонка variable_get
чтобы загрузить конфигурацию в каждом методе, я хочу установить конфигурацию в свойстве, чтобы я мог вызывать ее внутри всех методов. как его создать? Я пытался создать public function __construct() {}
и установить свойство, но до сих пор не может вызвать его внутри методов.
Спасибо,
2 ответа
Решение
Попробуй это
<?php
function variable_get($p) {
$arr = array('config' => array('var' => 4));
return $arr[$p];
}
class test {
public static $config_var = array();
public static function plus($input) {
$conf = self::$config_var;
$b = $conf['var'];
return (int)$input + (int)$b;
}
public static function minus($input) {
$conf = self::$config_var;
$b = $conf['var'];
return (int)$input - (int)$b;
}
}
test::$config_var = variable_get('config');
echo test::plus(12);
echo test::minus(12);
?>
для загрузки и получения конфигурации или файла настроек вы можете использовать parse_ini_file:
parse_ini_file - разобрать файл конфигурации
Пример #1 Содержание файла sample.ini
; This is a sample configuration file
; Comments start with ';', as in php.ini
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"
[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"
Содержание index.php
<?php
define('BIRD', 'Dodo bird');
// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);
// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);
?>
Приведенный выше пример выведет что-то похожее на:
Array
(
[one] => 1
[five] => 5
[animal] => Dodo bird
[path] => /usr/local/bin
[URL] => http://www.example.com/~username
[phpversion] => Array
(
[0] => 5.0
[1] => 5.1
[2] => 5.2
[3] => 5.3
)
)
Array
(
[first_section] => Array
(
[one] => 1
[five] => 5
[animal] => Dodo bird
)
[second_section] => Array
(
[path] => /usr/local/bin
[URL] => http://www.example.com/~username
)
[third_section] => Array
(
[phpversion] => Array
(
[0] => 5.0
[1] => 5.1
[2] => 5.2
[3] => 5.3
)
)
)
Простое определение класса
<?php
class SimpleClass
{
// property declaration and access from all method
public $var = 'a default value';
public $ini_array = parse_ini_file("sample.ini");
// method declaration
public function displayVar() {
echo $this->var;
print_r($this->$ini_array);
}
}
$Simpleclass = new SimpleClass();
$Simpleclass->displayVar();
?>