Вы называете атрибуты / свойства как функции?
До сих пор я думаю, что вы имели в виду переменные .
Если вы хотите получить доступ к таким свойствам, как passport_expire
или residency
, то вы можете попробовать как
$user = App\User::find(1);
foreach (array_keys($documents) as $document) {
$documents[$document] = $user->{$document};
}
Приведенный выше код обновит массив $documents
со значениями [ 114] свойства объекта.
Но, если вы хотите выполнить как функции , как вы упомянули, вам нужно попробовать call_user_func или call_user_func_array
См. MSDN:
Необходимо также использовать класс TransactionScope и DependentTransaction для приложений, которые требуют использования той же транзакции через несколько вызовов функции или несколько вызовов потока.
Поэтому, возможно, изучите DependentTransaction
- в частности, существует пример рабочего потока, здесь.
Это корректно: TransactionScope
класс использует Transaction.Current
свойство, которое хранит его значение в поле, которое отмечено с ThreadStatic
атрибут.
ThreadStatic
атрибут удостоверяется, что значение поля получает привязку потока, т.е. это имеет уникальное значение в каждом потоке. Это - рекомендуемый подход для совместного использования даты в потоке. Это также известно как Локальная память потока (TLS).
TransactionScope
класс просто определяет контекст транзакции в текущем потоке. Это не означает, однако, что Ваш код должен выполнить все задание в том потоке. Я мог вообразить сложный алгоритм расчета, который использует несколько потоков.