Ответ
Да, изменения свойств переданного объекта внутри функции будут видны снаружи, потому что в PHP объекты передаются по ссылке (точнее, по значению хэндла объекта). Это означает, что функция работает с тем же экземпляром объекта в памяти.
Пример:
class User {
public $name;
}
function changeName(User $user) {
$user->name = 'Alice';
}
$user = new User();
$user->name = 'Bob';
changeName($user);
echo $user->name; // Выведет 'Alice'
Важное исключение: Если внутри функции переменной $user присвоить новый объект, это не затронет исходный объект снаружи, так как меняется только локальная ссылка.
function replaceObject(User $user) {
// Это создаст новый объект, не влияющий на внешнюю переменную
$user = new User();
$user->name = 'Eve';
}