Supported Versions: PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8
Get part of string
mb_substr(    string $string,    int $start,    ?int $length null,    ?string $encoding null): string
        $start ltrim($matches[1]);



        
$start str(mb_substr($startmax(mb_strlen($start'UTF-8') - $radius0), $radius'UTF-8'))->ltrim()->unless(

            fn (
$startWithRadius) => $startWithRadius->exactly($start),

            fn (
$startWithRadius) => $startWithRadius->prepend($omission),

        );
        $end rtrim($matches[3]);



        
$end str(mb_substr($end0$radius'UTF-8'))->rtrim()->unless(

            fn (
$endWithRadius) => $endWithRadius->exactly($end),

            fn (
$endWithRadius) => $endWithRadius->append($omission),

        );
            return $string;

        }



        
$segment mb_substr($string$index$length$encoding);



        if (
$segment === '') {

            return 
$string;
            $startIndex $index < -$strlen $strlen $index;

        }



        
$start mb_substr($string0$startIndex$encoding);

        
$segmentLen mb_strlen($segment$encoding);

        
$end mb_substr($string$startIndex $segmentLen);
        $start mb_substr($string0$startIndex$encoding);

        
$segmentLen mb_strlen($segment$encoding);

        
$end mb_substr($string$startIndex $segmentLen);



        return 
$start.str_repeat(mb_substr($character01$encoding), $segmentLen).$end;

    }
        $segmentLen mb_strlen($segment$encoding);

        
$end mb_substr($string$startIndex $segmentLen);



        return 
$start.str_repeat(mb_substr($character01$encoding), $segmentLen).$end;

    }
    public static function substr($string$start$length null)

    {

        return 
mb_substr($string$start$length'UTF-8');

    }
        } elseif ($extraValue === 'NOT_NULL') {

            
$query->whereNotNull($key);

        } elseif (
str_starts_with($extraValue'!')) {

            
$query->where($key'!='mb_substr($extraValue1));

        } else {

            
$query->where($key$extraValue);

        }