Область видимости объектов в памяти PHP

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 ссылается на объект, который в сессии, и при изменение его, мы меняем этот же объект в сессии.

То же самое правильно для функции.

При передачи объекта в функцию, при модификации объекта в функции он изменяется и после нее.