РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1018 of 1361 menu

Метод setValue класса PropertyAccessor

Метод setValue класса PropertyAccessor записывает значение в свойство объекта или в элемент массива. Первым параметром передаётся объект или массив, вторым - путь к свойству, третьим - новое значение. Путь может быть вложенным, например 'user.name', а также поддерживать индексы массивов, например 'items[0].title'. Если свойство не существует и объект не допускает динамических свойств, будет выброшено исключение NoSuchPropertyException.

Синтаксис

$propertyAccessor->setValue(object|array $object, string $path, mixed $value): void

Пример

Давайте запишем значение в свойство title объекта:

<?php namespace AppService; use SymfonyComponentPropertyAccessPropertyAccess; class Article { public string $title = ''; } $article = new Article(); $propertyAccessor = PropertyAccess::createPropertyAccessor(); $propertyAccessor->setValue($article, 'title', 'abcde'); echo $article->title; ?>

Результат выполнения кода:

"abcde"

Пример

Давайте запишем значение во вложенное свойство name объекта user:

<?php namespace AppService; use SymfonyComponentPropertyAccessPropertyAccess; class User { public string $name = ''; } class Article { public ?User $user = null; public function __construct() { $this->user = new User(); } } $article = new Article(); $propertyAccessor = PropertyAccess::createPropertyAccessor(); $propertyAccessor->setValue($article, 'user.name', 'hello'); echo $article->user->name; ?>

Результат выполнения кода:

"hello"

Пример

Давайте запишем значение в элемент массива по индексу:

<?php namespace AppService; use SymfonyComponentPropertyAccessPropertyAccess; $article = [ 'title' => 'abcde', 'tags' => ['a', 'b', 'c', 'd', 'e'], ]; $propertyAccessor = PropertyAccess::createPropertyAccessor(); $propertyAccessor->setValue($article, '[title]', 'article'); $propertyAccessor->setValue($article, '[tags][0]', 'user'); print_r($article); ?>

Результат выполнения кода:

[ 'title' => 'article', 'tags' => ['user', 'b', 'c', 'd', 'e'], ]

Смотрите также

  • класс PropertyAccessor,
    который предоставляет доступ к свойствам объектов и массивов
  • метод getValue,
    который читает значение свойства по пути
  • метод isWritable,
    который проверяет, можно ли записать значение в свойство
  • метод isReadable,
    который проверяет, можно ли прочитать значение свойства
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить