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

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

Метод getValue класса PropertyAccessor возвращает значение свойства объекта или элемента массива по указанному пути. Первым параметром передаётся объект или массив, вторым - путь к свойству в виде строки. Третьим необязательным параметром можно включить режим игнорирования ошибок при отсутствии свойства.

Синтаксис

public function getValue(object|array $objectOrArray, string $propertyPath, bool $throwExceptionOnInvalidPropertyPath = true): mixed

Пример

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

<?php namespace AppUtil; use SymfonyComponentPropertyAccessPropertyAccess; class Article { public string $title = 'hello'; public int $views = 5; } $article = new Article(); $accessor = PropertyAccess::createPropertyAccessor(); $res = $accessor->getValue($article, 'title'); echo $res; ?>

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

"hello"

Пример

Давайте прочитаем значение вложенного свойства по пути через точку:

<?php namespace AppUtil; use SymfonyComponentPropertyAccessPropertyAccess; class Author { public string $name = 'abcde'; } class Article { public string $title = 'article'; public Author $author; public function __construct() { $this->author = new Author(); } } $article = new Article(); $accessor = PropertyAccess::createPropertyAccessor(); $res = $accessor->getValue($article, 'author.name'); echo $res; ?>

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

"abcde"

Пример

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

<?php namespace AppUtil; use SymfonyComponentPropertyAccessPropertyAccess; $article = [ 'title' => 'article', 'tags' => ['a', 'b', 'c'], ]; $accessor = PropertyAccess::createPropertyAccessor(); $res = $accessor->getValue($article, '[tags][1]'); echo $res; ?>

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

"b"

Пример

Давайте включим режим игнорирования отсутствующего свойства, передав третьим параметром false:

<?php namespace AppUtil; use SymfonyComponentPropertyAccessPropertyAccess; $article = ['title' => 'article']; $accessor = PropertyAccess::createPropertyAccessor(); $res = $accessor->getValue($article, '[views]', false); var_dump($res); ?>

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

NULL

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

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