/var/www/html_us/wp-content/plugins/woocommerce/vendor/symfony/polyfill-php80/Php80.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php

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

namespace Symfony\Polyfill\Php80;

/**
 * @author Ion Bazan <[email protected]>
 * @author Nico Oelgart <[email protected]>
 * @author Nicolas Grekas <[email protected]>
 *
 * @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$needle\strlen($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);
    }
}