Вход Регистрация
Файл: vendor/symfony/polyfill-php80/Php80.php
Строк: 136
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyPolyfillPhp80;

/**
 * @author Ion Bazan <ion.bazan@gmail.com>
 * @author Nico Oelgart <nicoswd@gmail.com>
 * @author Nicolas Grekas <p@tchwork.com>
 *
 * @internal
 */
final class Php80
{
    public static function 
fdiv(float $dividendfloat $divisor): float
    
{
        return @(
$dividend $divisor);
    }

    public static function 
get_debug_type($value): string
    
{
        switch (
true) {
            case 
null === $value: return 'null';
            case 
is_bool($value): return 'bool';
            case 
is_string($value): return 'string';
            case 
is_array($value): return 'array';
            case 
is_int($value): return 'int';
            case 
is_float($value): return 'float';
            case 
is_object($value): break;
            case 
$value instanceof __PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
            default:
                if (
null === $type = @get_resource_type($value)) {
                    return 
'unknown';
                }

                if (
'Unknown' === $type) {
                    
$type 'closed';
                }

                return 
"resource ($type)";
        }

        
$class get_class($value);

        if (
false === strpos($class'@')) {
            return 
$class;
        }

        return (
get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
    }

    public static function 
get_resource_id($res): int
    
{
        if (!
is_resource($res) && null === @get_resource_type($res)) {
            throw new 
TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given'get_debug_type($res)));
        }

        return (int) 
$res;
    }

    public static function 
preg_last_error_msg(): string
    
{
        switch (
preg_last_error()) {
            case 
PREG_INTERNAL_ERROR:
                return 
'Internal error';
            case 
PREG_BAD_UTF8_ERROR:
                return 
'Malformed UTF-8 characters, possibly incorrectly encoded';
            case 
PREG_BAD_UTF8_OFFSET_ERROR:
                return 
'The offset did not correspond to the beginning of a valid UTF-8 code point';
            case 
PREG_BACKTRACK_LIMIT_ERROR:
                return 
'Backtrack limit exhausted';
            case 
PREG_RECURSION_LIMIT_ERROR:
                return 
'Recursion limit exhausted';
            case 
PREG_JIT_STACKLIMIT_ERROR:
                return 
'JIT stack limit exhausted';
            case 
PREG_NO_ERROR:
                return 
'No error';
            default:
                return 
'Unknown error';
        }
    }

    public static function 
str_contains(string $haystackstring $needle): bool
    
{
        return 
'' === $needle || false !== strpos($haystack$needle);
    }

    public static function 
str_starts_with(string $haystackstring $needle): bool
    
{
        return 
=== strncmp($haystack$needlestrlen($needle));
    }

    public static function 
str_ends_with(string $haystackstring $needle): bool
    
{
        if (
'' === $needle || $needle === $haystack) {
            return 
true;
        }

        if (
'' === $haystack) {
            return 
false;
        }

        
$needleLength strlen($needle);

        return 
$needleLength <= strlen($haystack) && === substr_compare($haystack$needle, -$needleLength);
    }
}
Онлайн: 2
Реклама