Где хранить данные для использования их в функциях?
Приветствую. Какие вы знаете способы хранения данных которые могут использоваться в функциях (не классовые функции), К самим данным получить доступ можно было только через функцию.
Дополнительно:
Переменные, например. Если говорить о чистом ФП, то часто используется монада Reader, которая предоставляет доступ к контексту в любой функции, которая возвращает результат в этой монаде.
Задумка ясна, а цель данного танцевания не очень, есть конкретная задача, решаемая автором вопроса, или это размышления в вакууме? Так то хранилищ встроенных в язык особо и не много, и все они не удовлетворяют задаче. Возможно подойдут внешние хранилища, но без контекста не вижу смысл гадать...
function getData(){ static $data = [ 'userid' => 1, 'username' => 'adin' ]; return $data; } function get_userid() : int { return getData()['userid']; } function get_username() : string { return getData()['username']; } |
function getData(){ static $data = [ 'userid' => 1, 'username' => 'adin' ]; return $data; } function get_userid() : int { return getData()['userid']; } function get_username() : string { return getData()['username']; }
Сорри. Какой вопрос, такой ответ..
Ответы:
можно использовать static
function getInfo($type) { static $info = null; if(!$info) { $info = json_decode(file_get_contents("path/to/config")); } if($info[$type]) { return $info[$type]; } return false; } |
function getInfo($type) { static $info = null; if(!$info) { $info = json_decode(file_get_contents("path/to/config")); } if($info[$type]) { return $info[$type]; } return false; }
функция единоразово грузит json информацию
Я не совсем понял вопрос и зачем это нужно, но возможно что-то типа такого вам подойдёт:
function getInfo(...$vars) { $a = 'какой-то текст'; $b = 'что-то из базы'; $c = 'что-то из env переменных'; //итд foreach($vars[0] as $var_name) { $result[] = $$var_name; } return $result; } $result = getInfo(['a','b','c']); print_r($result); ?> |
function getInfo(...$vars) { $a = 'какой-то текст'; $b = 'что-то из базы'; $c = 'что-то из env переменных'; //итд foreach($vars[0] as $var_name) { $result[] = $$var_name; } return $result; } $result = getInfo(['a','b','c']); print_r($result); ?>
Вывод:
Array ( [0] => какой-то текст [1] => что-то из базы [2] => что-то из env переменных ) |
Array ( [0] => какой-то текст [1] => что-то из базы [2] => что-то из env переменных )
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для хранения данных, которые будут использоваться в функциях, можно использовать различные подходы в зависимости от конкретной задачи и требований проекта. Ниже приведены некоторые из наиболее распространенных способов хранения данных:
1. Глобальные переменные: Вы можете объявить переменные в глобальной области видимости и использовать их в функциях. Однако, глобальные переменные могут привести к конфликтам имён и усложнить отслеживание и управление данными.
$globalVar = 'Global variable'; function myFunction() { global $globalVar; echo $globalVar; }
2. Ассоциативные массивы: Вы можете использовать ассоциативные массивы для хранения данных и передавать их в качестве параметров в функции.
$data = array( 'name' => 'John', 'age' => 30 ); function myFunction($data) { echo $data['name']; }
3. Константы: Вы можете определить константы для хранения постоянных данных, которые не будут изменяться во время выполнения скрипта.
define('SITE_NAME', 'My Website'); function myFunction() { echo SITE_NAME; }
4. Статические переменные: Вы можете использовать статические переменные внутри функций для сохранения значений между вызовами функции.
function myFunction() { static $count = 0; $count++; echo $count; }
5. Использование базы данных: Если ваши данные требуется хранить на постоянной основе или вам нужно получать их из внешних источников, вы можете использовать базу данных для хранения и доступа к данным.
Выбор конкретного способа хранения данных зависит от конкретной ситуации и требований проекта. Необходимо учитывать масштаб проекта, потребности в безопасности данных, удобство использования и многие другие факторы при выборе подходящего метода хранения данных для использования в функциях.