1.php Создадим объект класса и запишем его в массив.
<?php $std = new stdClass(); $std->first = 1; session_start(); $_SESSION['test1'] = $std; print_r($_SESSION['test1']);
2.php В другом файле прочитаем его.
<?php session_start(); $std = $_SESSION['test1'] ; $std->first = 'first';
3.php В третьем файле выводим
<?php session_start(); print_r($_SESSION['test1']->first);
Что получим? Правильно
first
Хотя мы не записывали переменную std в Сессию, так как это объект, str ссылается на объект, который в сессии, и при изменение его, мы меняем этот же объект в сессии.
То же самое правильно для функции.
При передачи объекта в функцию, при модификации объекта в функции он изменяется и после нее.