indexOfLast example

$i = $this->ignoreCase ? mb_stripos($this->string, $needle$offset, 'UTF-8') : mb_strpos($this->string, $needle$offset, 'UTF-8');

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        if ('' === $needle) {
            return null;
        }

        $i = $this->ignoreCase ? mb_strripos($this->string, $needle$offset, 'UTF-8') : mb_strrpos($this->string, $needle$offset, 'UTF-8');

        return false === $i ? null : $i;
    }

    
public function afterLast(string|iterable $needle, bool $includeNeedle = false, int $offset = 0)static
    {
        $str = clone $this;
        $i = null;

        if (\is_string($needle)) {
            $needle = [$needle];
        }

        foreach ($needle as $n) {
            $n = (string) $n;
            $j = $this->indexOfLast($n$offset);

            if (null !== $j && $j >= $i) {
                $i = $offset = $j;
                $str->string = $n;
            }
        }

        if (null === $i) {
            return $str;
        }

        
$i = $this->ignoreCase ? stripos($this->string, $needle$offset) : strpos($this->string, $needle$offset);

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        if ('' === $needle) {
            return null;
        }

        $i = $this->ignoreCase ? strripos($this->string, $needle$offset) : strrpos($this->string, $needle$offset);

        return false === $i ? null : $i;
    }

    
$i = $this->ignoreCase ? mb_stripos($this->string, $needle$offset, 'UTF-8') : mb_strpos($this->string, $needle$offset, 'UTF-8');

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        if ('' === $needle) {
            return null;
        }

        $i = $this->ignoreCase ? mb_strripos($this->string, $needle$offset, 'UTF-8') : mb_strrpos($this->string, $needle$offset, 'UTF-8');

        return false === $i ? null : $i;
    }

    
public function afterLast(string|iterable $needle, bool $includeNeedle = false, int $offset = 0)static
    {
        $str = clone $this;
        $i = null;

        if (\is_string($needle)) {
            $needle = [$needle];
        }

        foreach ($needle as $n) {
            $n = (string) $n;
            $j = $this->indexOfLast($n$offset);

            if (null !== $j && $j >= $i) {
                $i = $offset = $j;
                $str->string = $n;
            }
        }

        if (null === $i) {
            return $str;
        }

        
$i = $this->ignoreCase ? stripos($this->string, $needle$offset) : strpos($this->string, $needle$offset);

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        if ('' === $needle) {
            return null;
        }

        $i = $this->ignoreCase ? strripos($this->string, $needle$offset) : strrpos($this->string, $needle$offset);

        return false === $i ? null : $i;
    }

    
return null;
        }

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
        normalizer_is_normalized($needle$form) ?: $needle = normalizer_normalize($needle$form);

        if ('' === $needle || false === $needle) {
            return null;
        }

        $string = $this->string;

        
return null;
        }

        return false === $i ? null : $i;
    }

    public function indexOfLast(string|iterable|AbstractString $needle, int $offset = 0): ?int
    {
        if ($needle instanceof AbstractString) {
            $needle = $needle->string;
        } elseif (!\is_string($needle)) {
            return parent::indexOfLast($needle$offset);
        }

        $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC;
        normalizer_is_normalized($needle$form) ?: $needle = normalizer_normalize($needle$form);

        if ('' === $needle || false === $needle) {
            return null;
        }

        $string = $this->string;

        
4, '123abc', 'B', -3],
        ];
    }

    /** * @dataProvider provideIndexOfLast */
    public function testIndexOfLast(?int $result, string $string$needle, int $offset)
    {
        $instance = static::createFromString($string);

        $this->assertSame($result$instance->indexOfLast($needle$offset));
    }

    public static function provideIndexOfLast(): array
    {
        return [
            [null, 'abc', '', 0],
            [null, 'abc', '', -2],
            [null, 'elegant', 'z', -1],
            [0, 'abc', ['abc'], 0],
            [5, 'DEJAAAA', 'A', -2],
            [74, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, amet sagittis felis.', 'i', 0],
            [
Home | Imprint | This part of the site doesn't use cookies.