AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"

Как изменить массив, подключаемый через require?

Например, есть такое подключение:
$r = require 'application/config/routes.php';
routes.php имеет код:
<?php
return [
    '' => [
        'controller' => 'main',
        'action' => 'index',
    ],
];


Скажите, как я могу, и могу ли я без танцев с file_put_contents() изменить массив в подключаемом файле? Например, добавить еще один элемент массива, да так что бы он добавился в routes.php
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 3
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
добавить - да, а вот сохранить - нет
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Как уже верно подметил предыдущий оратор - добавить в массив Вы можете что угодно, а сохранить это "без танцев с бубном" вряд ли получиться. Если Вам нужно загружать и сохранять какие-то данные для этого есть другие способы и форматы, например, JSON (json_encode()/json_decode()), или serialize()/unserialize().
Ответ написан
Комментировать
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
А какие танцы-то?
$file = '/path/to/file.php';
$array = [];
if (file_exists($file)){
    $array = include($file);
}
$array['new_value'] = 'FooBar!!!';
$content = var_export($array, true);
file_put_contents($file, '<?php return ' . $content.';');

var_export()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы