You appear to be a bot. Output may be restricted
Description
Resolves parameters inside a string.
Usage
$string = ParameterBag::resolveString( $value, $resolving );
Parameters
- $value
- ( string ) required – The string to resolve
- $resolving
- ( array ) optional – An array of keys that are being resolved (used internally to detect circular references)
Returns
string The resolved string
Source
File name: wordpress-seo/vendor_prefixed/symfony/dependency-injection/ParameterBag/ParameterBag.php
Lines:
1 to 36 of 36
public function resolveString($value, array $resolving = []) { // we do this to deal with non string values (Boolean, integer, ...) // as the preg_replace_callback throw an exception when trying // a non-string in a parameter value if (\preg_match('/^%([^%\\s]+)%$/', $value, $match)) { $key = $match[1]; $lcKey = \strtolower($key); // strtolower() to be removed in 4.0 if (isset($resolving[$lcKey])) { throw new \YoastSEO_Vendor\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException(\array_keys($resolving)); } $resolving[$lcKey] = \true; return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving); } return \preg_replace_callback('/%%|%([^%\\s]+)%/', function ($match) use($resolving, $value) { // skip %% if (!isset($match[1])) { return '%%'; } $key = $match[1]; $lcKey = \strtolower($key); // strtolower() to be removed in 4.0 if (isset($resolving[$lcKey])) { throw new \YoastSEO_Vendor\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException(\array_keys($resolving)); } $resolved = $this->get($key); if (!\is_string($resolved) && !\is_numeric($resolved)) { throw new \YoastSEO_Vendor\Symfony\Component\DependencyInjection\Exception\RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type %s inside string value "%s".', $key, \gettype($resolved), $value)); } $resolved = (string) $resolved; $resolving[$lcKey] = \true; return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving); }, $value); }