Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Return part of a string
substr(string $stringint $offset, ?int $length null): string
                } elseif (\is_array($callable)) {

                    
$r $callable;

                } elseif (
false !== $i strpos($callable'::')) {

                    
$r = [substr($callable0$i), substr($callable$i)];

                } else {

                    
$r = new \ReflectionFunction($callable);

                }
                    $r = new \ReflectionFunction($callable);

                }

            } elseif (
$i strpos($identifier'::') ?: strpos($identifier'->')) {

                
$r = [substr($identifier0$i), substr($identifier$i)];

            } else {

                
$r = new \ReflectionClass($identifier);

            }
            $format .= ($i->'%yy ' '').($i->'%mm ' '').($i->'%dd ' '');

        }



        
$format .= $i->|| $i->|| $i->|| $i->'%H:%I:'.self::formatSeconds($i->ssubstr($i->f2)) : '';

        
$format '%R ' === $format '0s' $format;



        return 
$i->format(rtrim($format));
                $a[$prefix.'src'] = self::$framesCache[$cacheKey];

            } else {

                if (
preg_match('/\((\d+)\)(?:\([\da-f]{32}\))? : (?:eval\(\)\'d code|runtime-created function)$/'$f['file'], $match)) {

                    
$f['file'] = substr($f['file'], 0, -\strlen($match[0]));

                    
$f['line'] = (int) $match[1];

                }

                
$src $f['line'];
        foreach ($src as $i => $c) {

            if (
$ltrim) {

                
$c = isset($c[$ltrim]) && "\r" !== $c[$ltrim] ? substr($c$ltrim) : ltrim($c" \t");

            }

            
$c substr($c0, -1);

            if (
$i !== $srcContext) {
            if ($ltrim) {

                
$c = isset($c[$ltrim]) && "\r" !== $c[$ltrim] ? substr($c$ltrim) : ltrim($c" \t");

            }

            
$c substr($c0, -1);

            if (
$i !== $srcContext) {

                
$c = new ConstStub('default'$c);

            } else {
        }

        if (
str_starts_with($href'file://')) {

            if (
$href === $label) {

                
$label substr($label7);

            }

            
$href substr($href7);

        } elseif (
str_contains($href'://')) {
            if ($href === $label) {

                
$label substr($label7);

            }

            
$href substr($href7);

        } elseif (
str_contains($href'://')) {

            
$this->attr['href'] = $href;
        if ($composerRoot $this->getComposerRoot($href$this->inVendor)) {

            
$this->attr['ellipsis'] = \strlen($href) - \strlen($composerRoot) + 1;

            
$this->attr['ellipsis-type'] = 'path';

            
$this->attr['ellipsis-tail'] = + ($this->inVendor \strlen(implode(''\array_slice(explode(\DIRECTORY_SEPARATORsubstr($href$this->attr['ellipsis'])), 02))) : 0);

        } elseif (
\count($ellipsis explode(\DIRECTORY_SEPARATOR$href))) {

            
$this->attr['ellipsis'] = \strlen(implode(''\array_slice($ellipsis, -2)));

            
$this->attr['ellipsis-type'] = 'path';
                        if (!$param->isOptional() && $param->allowsNull() && 'mixed' !== $type->getName()) {

                            
$signature .= '?';

                        }

                        
$signature .= substr(strrchr('\\'.$type->getName(), '\\'), 1).' ';

                    }

                }

                
$signature .= $k;
                $signature .= ' = ';



                if (
$param->isDefaultValueConstant()) {

                    
$signature .= substr(strrchr('\\'.$param->getDefaultValueConstantName(), '\\'), 1);

                } elseif (
null === $v) {

                    
$signature .= 'null';

                } elseif (
\is_array($v)) {
                } elseif (\is_bool($v)) {

                    
$signature .= $v 'true' 'false';

                } elseif (
\is_object($v)) {

                    
$signature .= 'new '.substr(strrchr('\\'.get_debug_type($v), '\\'), 1);

                } else {

                    
$signature .= $v;

                }
                }

            }

        }

        
$signature = (empty($a[$prefix.'returnsReference']) ? '' '&').'('.substr($signature2).')';



        if (isset(
$a[$prefix.'returnType'])) {

            
$signature .= ': '.substr(strrchr('\\'.$a[$prefix.'returnType'], '\\'), 1);
        $signature = (empty($a[$prefix.'returnsReference']) ? '' '&').'('.substr($signature2).')';



        if (isset(
$a[$prefix.'returnType'])) {

            
$signature .= ': '.substr(strrchr('\\'.$a[$prefix.'returnType'], '\\'), 1);

        }



        return 
$signature;
                            $stub->class Stub::STRING_BINARY;

                            if (
<= $maxString && $cut \strlen($v) - $maxString) {

                                
$stub->cut $cut;

                                
$stub->value substr($v0, -$cut);

                            } else {

                                
$stub->value $v;

                            }