print encode(
2452221399229541659,
'!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
);
// %;<%u+^2]8
<?php
try {
$id = null;
$content = file_get_contents("php::/input");
$payload = json_decode($content);
if ($payload === false) {
throw new Exception('Parse error', -32700);
}
$id = $payload->id ?? null;
if (
!isset($payload->jsonrpc) || $payload->jsonrpc !== '2.0') ||
!isset($payload->id) || !isset($payload->method) ||
!isset($payload->params)
) {
throw new Exception('Invalid Request', -32600);
}
// findRoute ищет нужный метод,
// выбрасывает исключение 'Method not found', -32601
$route = findRoute($payload->method);
// Метод возвращает результат или выбрасывает исключение
$result = $route($payload->params);
$answer = [
'jsonrpc' => '2.0',
'id' => $payload->id,
'result' => $result
];
} catch (Exception $e) {
$answer = [
'jsonrpc' => '2.0',
'id' => $id,
'error' => [
'code' => $e->getCode(),
'message' => $e->getMessage()
]
];
}
echo json_encode($answer, JSON_UNESCAPED_UNICODE);
async function request(...) {
const responce = await fetch(...);
const content = await responce.json();
if (content.status === 'error') {
// обработка ошибок
} else {
if (content.location !== undefined) {
window.location = content.location;
return
}
return content.data;
}
}
Пока не видел такого. Обычно в конструкторе пишут код, который проверяет создан ли уже экземпляр класса (синглтон) и если создан не дают создать новый.Если вы вызвали конструктор, то экземпляр уже создан. Вы не можете вернуть из конструктора другой экземпляр. Поэтому для синглтона методы __construct и __clone объявляют приватными, а экземпляр получают из статического метода.
class Singleton
{
private static Singleton $instance;
private function __construct() {}
private function __clone() {}
public static function instance(): self
{
if (!isset(static::$instance)) {
static::$instance = new static();
}
return static::$instance;
}
}
И неизменная часть кода (например метод, не содержащий переменных) будет хранится в памяти в единственном экземпляреМетод, содержащий переменные, также будет храниться в одном экземпляре. Переменные будут динамически создаваться при вызове метода.
Поскольку вы получаете массив, то просто убрать скобки и кавычки по краям - не вариант. При двух элементах в faqService вы получите
["Test answer 1","Test answer2"]