summaryrefslogtreecommitdiff
path: root/vendor/thecodingmachine/safe/generated/json.php
blob: 76fc6c17ed54a3863409ce3cbfd937215b965368 (plain)
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
<?php

namespace Safe;

use Safe\Exceptions\JsonException;

/**
 * Returns a string containing the JSON representation of the supplied
 * value.
 *
 * The encoding is affected by the supplied flags
 * and additionally the encoding of float values depends on the value of
 * serialize_precision.
 *
 * @param mixed $value The value being encoded. Can be any type except
 * a resource.
 *
 * All string data must be UTF-8 encoded.
 *
 * PHP implements a superset of JSON as specified in the original
 * RFC 7159.
 * @param int $flags Bitmask consisting of
 * JSON_FORCE_OBJECT,
 * JSON_HEX_QUOT,
 * JSON_HEX_TAG,
 * JSON_HEX_AMP,
 * JSON_HEX_APOS,
 * JSON_INVALID_UTF8_IGNORE,
 * JSON_INVALID_UTF8_SUBSTITUTE,
 * JSON_NUMERIC_CHECK,
 * JSON_PARTIAL_OUTPUT_ON_ERROR,
 * JSON_PRESERVE_ZERO_FRACTION,
 * JSON_PRETTY_PRINT,
 * JSON_UNESCAPED_LINE_TERMINATORS,
 * JSON_UNESCAPED_SLASHES,
 * JSON_UNESCAPED_UNICODE,
 * JSON_THROW_ON_ERROR.
 * The behaviour of these constants is described on the
 * JSON constants page.
 * @param int $depth Set the maximum depth. Must be greater than zero.
 * @return string Returns a JSON encoded string on success.
 * @throws JsonException
 *
 */
function json_encode($value, int $flags = 0, int $depth = 512): string
{
    error_clear_last();
    $result = \json_encode($value, $flags, $depth);
    if ($result === false) {
        throw JsonException::createFromPhpError();
    }
    return $result;
}