var a = [1,2,3,4];
var b = [3,4,5,6];
var с;
c = a;
Array.prototype.push.apply(a,b) // [1, 2, 3, 4, 3, 4, 5, 6]
c
тоже не очень понятно - массивы присваиваются по ссылке, поэтому a
изменится тоже.let online = 0,
ipsConnected = {}; //список подключенных ip
io.on('connection', async (socket) => {
let address;
if (socket.handshake.headers['x-forwarded-for'] !== undefined) {
address = socket.handshake.headers['x-forwarded-for'];
} else {
address = socket.handshake.headers["x-real-ip"];
}
if (!ipsConnected.hasOwnProperty(address)) {
ipsConnected[address] = 1;
online++;
} else {
ipsConnected[address] += 1;
}
socket.on('disconnect', () => {
ipsConnected[address] -= 1;
if (ipsConnected[address] <= 0) {
delete ipsConnected[address];
online--;
}
});
});
lcfirst(str_replace(' ', '', ucwords(str_replace(['-', '_'], ' ', $value))));
Я понимаю, что нельзя передать объект Date.Передать можно, нельзя отрендерить. Соответственно, и к строке приводить нужно там, где рендерите.
1. В каком слое принято обрабатывать такие ситуации?Зависит от логики приложения, однозначного ответа нет.
2. Каким кэтчем отлавливать бОльшую часть исключений? Стоит ли использовать \Exception?\Throwable отловит всё. Хорошая ли это идея - спорный вопрос, однозначного ответа нет.
3. Стоит ли делать так:Если есть реальные веские причины, то стоит. Нет - нет. В вашем вопросе причин таких не наблюдается.
Я думал, фреймворк как-то из коробки умеет такие ситуации обрабатывать.Умеет.
const collection = {
... и т.д.
}
const firestore = {
collection: (name) => return collecton,
}
const firebase = {
firestore: () => return firestore
};
при просмотре увидим, что он одинаков на всех этапах сортировок. В тоже время, он совпадает с последним отсортированным, массивом.