<?php
require_once __DIR__ . '/../../../vendor/autoload.php';
// Этот класс Message лучше вынести в отдельный файл.
class Message {
public array $messages = [];
public function addMessage(string $msg) {
$this->messages[] = $msg;
}
}
$message = new Message();
$client = new \Binance\Websocket\Spot();
$callbacks = [
'message' => function ($conn, $msg) use ($message) {
$message->addMessage($msg);
echo $msg.PHP_EOL;
},
'ping' => function ($conn, $msg) use ($message) {
$message->addMessage($msg);
echo "received ping from server".PHP_EOL;
}
];
# single pair
$client->miniTicker($callbacks, 'btcusdt');
var_dump($message->messages);
Ну вот прямо из моего примера всё и взять. У меня там класс Client - это просто имитация вашего бинансовского класса Client.
Главное - это конструкция use в коллбэках. Она замыкает переменную $message внутри этих коллбэков. А т.к. переменная $message является просто ссылкой на сам объект, то когда эта переменная копируется внутрь коллбэка через замыкание, она всё равно ссылается на тот же самый объект, и мы этим пользуемся, чтобы собирать сообщения
Владислав Лысков, С JS нам просто повезло на данный момент. Потому как движки всё же совершенно разные у Safari и Chrome. Повезло, потому что разработчики с обеих сторон стараются всё же полностью соответствовать стандартам ECMAScript. Но я побаиваюсь, что это всё же может измениться в будущем.
А Safari уже реализовали обновление браузера отдельно от обновления системы? Ведь именно это и было главным злом и бедой Safari. Я просто давно Маком не пользуюсь, не в курсе)
C Bing я, конечно, тупанул. Просто опечатка)))
Практически все проблемы, когда что-то не так отображается на странице, поступают к нам от пользователей Safari