Здравствуйте. У меня есть 3 файла .php (затронем только 2, т.к. проблема в 3 файл выливается из этого же): - Freekassa.php - FreekassaModel.php - FreekassaHandler.php В FreekassaHandler.php указано следующее: PHP: include '../config.php'; include 'FreekassaModel.php'; include 'Freekassa.php'; В config.php PHP: class Config { // Настроек от проекта в личном кабинете free-kassa.ru const MARCHANT_ID = '51919'; } Соответственно, у меня вызывается файл FreekassaHandler.php, в нем автатом подключаются через include config и freekassa.php. В freekassa.php есть следующий код (для дебага, тоже вызывается): PHP: private function GoTofreekassa($request) { $m = Config::MERCHANT_ID; # $oa = $request['sum']; # $o = 'Пополнение счета'; # $us_account = $request['account']; # $s = md5(implode(':', array($m, $oa, $config['freekassa']['secret_key_1'], $o))); printf("id - %d", $m); // header("Location: //www.free-kassa.ru/merchant/cash.php?m={$m}&oa={$oa}&o={$o}&s={$s}&us_account={$us_account}"); return; } --- Добавлено --- В итоге ошибка: Код (Text): Fatal error: Undefined class constant 'MERCHANT_ID' in /home/users/d/demure-rp/domains/donate.demure-rp.ru/lib/Freekassa.php on line 85 85 строка: PHP: $m = Config::MERCHANT_ID;
Опечатка в константе у тебя,внимательно посмотри PHP: $m = Config::MERCHANT_ID; PHP: class Config { // Настроек от проекта в личном кабинете free-kassa.ru const MARCHANT_ID = '51919'; }
Да, только что сам заметил, но у меня другой вопрос, почему похожий вариант не катает с массивом? Например, в config.php у меня есть: PHP: $config = array( 'db' => array( 'host' => "-", 'user' => '-', 'pass' => '-', 'base' => '-' ), 'freekassa' => array( 'merchant_id' => '51919', 'secret_key_1' => '-', 'secret_key_2' => '-', 'item_price' => '1', 'table_account' => 'accounts', 'table_account_name' => 'nickname', 'table_account_donate' => 'rubadd' ) ); И когда вызываю в FreekassaHandler.php, то вроде все ок, даже выводится var_dump: PHP: array(7) { ["merchant_id"]=> string(5) "51919" ["secret_key_1"]=> string(8) "-" ["secret_key_2"]=> string(8) "-" ["item_price"]=> string(1) "1" ["table_account"]=> string(8) "accounts" ["table_account_name"]=> string(8) "nickname" ["table_account_donate"]=> string(6) "rubadd" } Но когда делаю тоже самое уже в Freekassa.php, то выводится NULL, хотя в Freekassa.php все подключается: PHP: include '../config.php'; include 'FreekassaModel.php'; include 'Freekassa.php'; --- Добавлено --- Т.е. логика вся та же, но если в config.php создать class Config, то все хорошо, а если через массив то увы не работает(
Я не могу без файлов сказать почему работает или не работает,потому что я не Ванга,но впринципе ты можешь задать массив константе: PHP: <?php class A { const B = [ 1,2,3 =>[4,5,6] ]; } print_r(A::B); Код (Text): Array ( [0] => 1 [1] => 2 [3] => Array ( [0] => 4 [1] => 5 [2] => 6 ) )