Время жизни переменной PHP через вызовы Ajax - PullRequest
0 голосов
/ 23 февраля 2011

Переменные обычно уничтожаются, а занятая ими память освобождается, как только сборщик мусора сочтет это необходимым. По сути, довольно скоро после того, как исполняемый скрипт закончен, да?

Теперь меня интересует время жизни извлеченных переменных Ajax.

Поскольку переменные обычно удаляются после завершения скрипта, в котором они выполняются, то есть, при перезагрузке страницы, попадает ли Ajax и в эту категорию? Если у меня есть сценарий, который получает толстый массив JSON из PHP, и очищаю только переменную JS с "arrayVar = null" после того, как я его использую, этого достаточно? Или я должен сбросить переменные PHP, которые также создали возвращаемый массив? Например:

// PHP CODE
<?
public function some_kind_of_ajax_called_action() {

    $someClass = new MyClass();
    $someArray = $someClass->getRequestedData();
    $arrayForReturning = array();

    foreach ($someArray as $element) {
        ($currentUser == "admin")?($arrayForReturning[] = $element):null;
    }

    die(json_encode($arrayForReturning));
}
?>

Было бы лучше включить ...

unset($someClass);
unset($someArray);

... до вызова die ()? Сохранит ли это память, независимо от того, как мало?

Приветствия

Ответы [ 3 ]

5 голосов
/ 23 февраля 2011

PHP-часть выполняется в тот момент, когда она обслуживает ваш AJAX-запрос, а не до перезагрузки страницы.Не имеет значения, держите ли вы его в переменной JSОни не связаны.

0 голосов
/ 23 февраля 2011

Обе эти переменные будут сброшены в конце скрипта так же, как и любая другая страница.

Кстати, вы также можете использовать unset ($ someClass, $ someArray), так как он принимает несколько входных данных

0 голосов
/ 23 февраля 2011

Я не вижу причины, по которой это необходимо, поскольку AJAX-запрос не отличается от обычного HTTP-запроса, только то, что его ответ обрабатывается вашим браузером по-другому.

...