Edit3: Чтобы назначить что-то нестатическое переменной из файла, вы можете использовать оператор return
внутри файла, а затем включить файл, чтобы назначить его переменной:
$var = include($file);
$file
должен быть файлом с правильным синтаксисом PHP (см. include
Документы и оператор return
. Тогда вы готовы идти.
Включить поэтому очень похоже на eval
на уровне языка, поэтому будьте осторожны.
Есть и другой способ, например, JSON - это сериализация: serialize
Документы и unserialize
Документы , а также в PHP.
$object = unserialize(file_get_contents($filepath));
file_put_contents($filepath, serialize($object));
Говорят, что это медленнее, чем с json_encode
/ json_decode
(я не измерял это).
Преимущество этого в том, что улучшена поддержка конкретных экземпляров объектов PHP, он просто лучше интегрируется с языком (что неудивительно, поскольку это ядро PHP).
Редактировать: Как прокомментировано, вы хотите вручную редактировать файлы. Сериализованные в PHP данные (по умолчанию) не очень удобны для чтения / редактирования, поэтому вы можете поискать сериализацию в XML: XML_Serializer
Пакет PEAR . Другой XML Serializer доступен в Symfony2 и поддерживает также другие форматы (например, JSON).
Другой альтернативой является переключение сериализатора PHP на WDDX (поставляется с ядром PHP), который фактически является XML.
Edit2: Есть что-то похожее на JSON для PHP: eval
и var_export
. Но будьте осторожны, это несколько грязно (или лучше сказать зло), и конкретный класс тоже должен это поддерживать (при использовании объектов):
$var = array('prop' => 'some value');
ob_start();
var_export($var);
$buffer = ob_get_clean();
# $buffer now contains something that can be saved,
# to load it again:
$var = eval('return '.$buffer.';');
var_dump($var);
Песочница