Где хранить данные для использования их в функциях?

Ссылка скопирована
PHP
1 ответ

Приветствую. Какие вы знаете способы хранения данных которые могут использоваться в функциях (не классовые функции), К самим данным получить доступ можно было только через функцию.

Дополнительно:

Переменные, например. Если говорить о чистом ФП, то часто используется монада 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
    Ольга Сеть Ответ

    Для хранения данных, которые будут использоваться в функциях, можно использовать различные подходы в зависимости от конкретной задачи и требований проекта. Ниже приведены некоторые из наиболее распространенных способов хранения данных:

    1. Глобальные переменные: Вы можете объявить переменные в глобальной области видимости и использовать их в функциях. Однако, глобальные переменные могут привести к конфликтам имён и усложнить отслеживание и управление данными.

    $globalVar = 'Global variable';
     
    function myFunction() {
        global $globalVar;
        echo $globalVar;
    }

    $globalVar = 'Global variable'; function myFunction() { global $globalVar; echo $globalVar; }

    2. Ассоциативные массивы: Вы можете использовать ассоциативные массивы для хранения данных и передавать их в качестве параметров в функции.

    $data = array(
        'name' => 'John',
        'age' => 30
    );
     
    function myFunction($data) {
        echo $data['name'];
    }

    $data = array( 'name' => 'John', 'age' => 30 ); function myFunction($data) { echo $data['name']; }

    3. Константы: Вы можете определить константы для хранения постоянных данных, которые не будут изменяться во время выполнения скрипта.

    define('SITE_NAME', 'My Website');
     
    function myFunction() {
        echo SITE_NAME;
    }

    define('SITE_NAME', 'My Website'); function myFunction() { echo SITE_NAME; }

    4. Статические переменные: Вы можете использовать статические переменные внутри функций для сохранения значений между вызовами функции.

    function myFunction() {
        static $count = 0;
        $count++;
        echo $count;
    }

    function myFunction() { static $count = 0; $count++; echo $count; }

    5. Использование базы данных: Если ваши данные требуется хранить на постоянной основе или вам нужно получать их из внешних источников, вы можете использовать базу данных для хранения и доступа к данным.

    Выбор конкретного способа хранения данных зависит от конкретной ситуации и требований проекта. Необходимо учитывать масштаб проекта, потребности в безопасности данных, удобство использования и многие другие факторы при выборе подходящего метода хранения данных для использования в функциях.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно