
0x9d8e
27.04.2017
14:31:21
а что за сервис? каким образом он получает данные?

Al
27.04.2017
14:31:37
правда, к БД я подключаюсь из вне
БД на другом сервере

0x9d8e
27.04.2017
14:31:49
если это яндекс/гугл, то эти переходы могли до страницы вообще не дойти

Google

Al
27.04.2017
14:32:01

0x9d8e
27.04.2017
14:32:04
и при этом сервису известны

Al
27.04.2017
14:32:08
оба простенькие скрипты
записывает в БД стандартную инфу, юерагент, ип, время и т.д.

0x9d8e
27.04.2017
14:32:45
можно попробовать в лог-файл с блокировкой писать
и справнить потом

Al
27.04.2017
14:32:59
таблица у меня инно
хм..
нужно попробовать

0x9d8e
27.04.2017
14:34:04
в идеале даже не в файл, а в файлы с хешем/таймштампом в названии
но и блокировка на время записи прокатить должна
ну чтобы небыло такого, что потоки одновременно писали и перетёрли друг-друга

Google

Al
27.04.2017
14:35:13
LOCK_EX или как там?)
с блокировкой потери исключены?

0x9d8e
27.04.2017
14:35:38
чёт такое, надо в доки глянуть
насчёт 100% исключены не скажу, но не должно бы быть

Roquie
27.04.2017
14:36:41
Ребята, угадайте какой вывод будет в php7.1:
$array = [['foo' => 'bar']];
foreach($array ?? [] as & $item) {
$item['key'] = 'value';
}
var_dump($array);

0x9d8e
27.04.2017
14:36:43
Типа файл открыли, заблокировали, записали, закрыли, разблокировали. Пока он заблокирован другие потоки ждут.

f4rt~
27.04.2017
14:36:58
на цифрах скажу)
уже кидал такой пример

Roquie
27.04.2017
14:37:21

f4rt~
27.04.2017
14:37:27

0x9d8e
27.04.2017
14:37:42

f4rt~
27.04.2017
14:37:55

Roquie
27.04.2017
14:38:06

0x9d8e
27.04.2017
14:38:07
чего гадать то

Roquie
27.04.2017
14:38:24
-
по хорошему должен доабвиться ключик key со значением

f4rt~
27.04.2017
14:38:55

Evgeny_30
27.04.2017
14:39:20
счетчик пошел вверх, значит на гиксах весело =)))

0x9d8e
27.04.2017
14:39:28

Google

Roquie
27.04.2017
14:40:38

f4rt~
27.04.2017
14:41:20

Evgeny_30
27.04.2017
14:42:33
Фарт

f4rt~
27.04.2017
14:42:38
м

Evgeny_30
27.04.2017
14:43:38
а тут как в С & ссылка?

f4rt~
27.04.2017
14:43:55
а так

Roquie
27.04.2017
14:47:00
123122
Это то да. Не вижу связи, кроме как применения ссылки в обоих примерах. Если изменить немного пример, тогда будет работать ожидаемо:
$array = [['foo' => 'bar']];
$array = $array ?? [];
foreach($array as & $item) {
$item['key'] = 'value';
}
array(1) {
[0] =>
array(2) {
'foo' =>
string(3) "bar"
'key' =>
string(5) "value"
}
}

f4rt~
27.04.2017
14:47:25
там дохуя таких штук

Roquie
27.04.2017
14:48:16
тем не менее, я не ожидал увидеть этого в семерке, там много неочевидностей с форычем убрали

f4rt~
27.04.2017
14:49:34

Roquie
27.04.2017
14:50:36

f4rt~
27.04.2017
14:50:58
:D

Roquie
27.04.2017
14:51:03
:D
я сам до этого дошел

da horsie
27.04.2017
14:53:52

0x9d8e
27.04.2017
14:53:59
эти "wtf" больше к авторам такого кода, чем к языку
я охреневаю, когда пишут такой бред и жалуются что он "не так" работает

Evgeny_30
27.04.2017
14:54:53

Google

Evgeny_30
27.04.2017
14:55:13
Просто мне помнится вы днем по этим принципам катались

da horsie
27.04.2017
14:55:25

Evgeny_30
27.04.2017
14:56:04
Ааа
кто как делает диаграммы классов

Евгений
27.04.2017
14:56:50
телеграм уже сам подсказывает коню )

f4rt~
27.04.2017
14:56:57

Muzaffar
27.04.2017
14:58:27

Владимир
27.04.2017
14:58:55

Vadim
27.04.2017
14:59:44

Evgeny_30
27.04.2017
15:00:21
Ну хрен знает, заставляют же иной раз

Admin
ERROR: S client not available

Roquie
27.04.2017
15:00:52
я бы не сказал, что это лютый пиздец, если бы не этот нюанс.

f4rt~
27.04.2017
15:02:18
ошибка
а с пустым конструктором канает

0x9d8e
27.04.2017
15:02:56

f4rt~
27.04.2017
15:03:24

Roquie
27.04.2017
15:04:11
items вполне себе может отсутствовать

Google

Евгений
27.04.2017
15:04:56

f4rt~
27.04.2017
15:05:07

Евгений
27.04.2017
15:05:22
ожидаешь 817161

0x9d8e
27.04.2017
15:05:50

f4rt~
27.04.2017
15:06:02

Евгений
27.04.2017
15:07:19
я проверил уже же

Roquie
27.04.2017
15:07:43

0x9d8e
27.04.2017
15:07:47
По ассоциативному массиву надо бегать через foreach($array as $key => $value) а не ко константным ключам. Ибо если там константные ключи, значит это и не хеш уже, а класс сделанный из массива)

Евгений
27.04.2017
15:07:48
я думал, будет либо 817161 либо 617181 либо 678111
и ни разу не угадал

0x9d8e
27.04.2017
15:09:08
По мне так главный косяк пхп не в том, что он такие вещи неожиданно выполняет. а в том, что не вылетает с синтаксической ошибкой.

Евгений
27.04.2017
15:09:30
в каком случае?

Roquie
27.04.2017
15:10:28


0x9d8e
27.04.2017
15:16:37
Если у тебя массивчик большой, жирный, вложенный и ассоциативный, (например json_decode от вывода апи) и лишний раз описывать гидрировальщик тебе лень, то работать с вложенным ассоциативным массивом через $array['items'] так или иначе приходится и в принципе, это нормальная практика.
Тогда берём, да пишем валидацию, прежде чем работать. И пускай эта валидация явным образом проверит, кинет исключения/приведёт тип (тот самый $array['items'] = $array['items'] ?? [];). И уже потом обрабатываем. При этом код получается яснее и проще. В одном месте исключительно проверки, в другом исключительно логика без всяких проверок. Ну на 2 минуты дольше печатать. Зато читать, править и дебажить быстрее.

Roquie
27.04.2017
15:21:02
Зачастую подобные вещи решаются array_get($array, $key, $default) хелперами

0x9d8e
27.04.2017
15:21:45
$array['items'] ?? [] это уже "валидация"
просто тут оно с обработкой перемешано
а можно сделать до