
Shmaltorhbooks
10.05.2018
11:05:47
Да и callable не сама функция, а строка с её именем

Alexander
10.05.2018
11:06:36
но в целом да, магия костыльная: отдаем имя функции

Evgeniy
10.05.2018
11:06:56

Google

Shmaltorhbooks
10.05.2018
11:07:16

Evgeniy
10.05.2018
11:07:20
но опять же я писал о другом

Alexander
10.05.2018
11:07:30

Shmaltorhbooks
10.05.2018
11:07:36
Отдаём вообще массив)

Evgeniy
10.05.2018
11:07:56
ну callable может быть string, array, Closure

Shmaltorhbooks
10.05.2018
11:08:51
костыльность еще и в том, что не каждый array)

Evgeniy
10.05.2018
11:09:01
и не каждый стринг)))

Alexander
10.05.2018
11:09:06
Отдаём вообще массив)
а, ты про вызов метода типа [ClassName::class, 'staticMethod'] и [$object, 'method']

Evgeniy
10.05.2018
11:09:14
а еще пользовательские функции могут быть не всегда загружены

Shmaltorhbooks
10.05.2018
11:09:21
ага

Evgeniy
10.05.2018
11:09:29
и в одном случае строка callable а в другом нет)
?
там не зря есть http://php.net/manual/ru/closure.fromcallable.php

Google

Alexander
10.05.2018
11:10:16
вот да: интересно, на каком этапе проверяется строка на соответствие callable

Shmaltorhbooks
10.05.2018
11:10:32
в момент попытки вызова

Alexander
10.05.2018
11:10:57
т.е. от тайпхинта callable пользы ноль?

Shmaltorhbooks
10.05.2018
11:11:19
а, ты об этом
значит еще и в момент передачи строки как аргумента

Evgeniy
10.05.2018
11:11:53
https://3v4l.org/4ppHO

Shmaltorhbooks
10.05.2018
11:12:10
хз, мож еще какие-то моменты есть, когда она проверяется
больше контекста в вопросе надо))

Alexander
10.05.2018
11:16:21
одна из немногих штук, которые мне нравятся в js, это то что можно просто передать функцию: не строку, не массив, не анонимку, а просто функцию

Evgeniy
10.05.2018
11:16:23
в пыхе тоже можно
в моем примере $m - Closure
ее можно в саму себя передать
Closure это подмножество callable

Alexander
10.05.2018
11:17:36
надо будет кавычки добавить
я наверху написал "не анонимку"

Shmaltorhbooks
10.05.2018
11:18:17
ок, тогда поправлюсь, строка проверяется на callable что не в момент вызова, а в момент использования собственно как callable
будь то тайпхинт, call_user_func или array_map

Google

Alexander
10.05.2018
11:19:02

Evgeniy
10.05.2018
11:19:23
первый аргумент callable

Maksim
10.05.2018
11:19:30

Shmaltorhbooks
10.05.2018
11:19:38

Evgeniy
10.05.2018
11:20:01
а ну да без кавычек)
там надо действительно в кавычки
эту функцию

Alexander
10.05.2018
11:21:02
ну фактически пока это еще работает, но выбрасывает ворнинг
https://3v4l.org/AtODL

Evgeniy
10.05.2018
11:21:21

Alexander
10.05.2018
11:21:31

Evgeniy
10.05.2018
11:21:42
https://3v4l.org/Zl5fV

Evgeniy
10.05.2018
11:21:46
варнингов нет

Shmaltorhbooks
10.05.2018
11:22:18
потому что пхп строку trim (без кавычек) преобразовывает в 'trim' (в кавычках) и кидает варнинг

Evgeniy
10.05.2018
11:22:41
он в начале ее как константу воспринимает

Alexander
10.05.2018
11:22:43
я так-то и говорю, что мне нравится то, что в js эти кавычки не нужны. я так-то знаю как в пхп колэблы передавать: чай вторая пятилетка работы на пхп уже началась

Evgeniy
10.05.2018
11:22:52
потом не находит константу паника

Shmaltorhbooks
10.05.2018
11:22:59
но это от версий зависит, разрабы вроде планируют это поведение выпиливать

Evgeniy
10.05.2018
11:23:01
дальше магия пхп и теперь это считает строкой)

Shmaltorhbooks
10.05.2018
11:23:11
если не выпилили уже в последних 7,2)

Google

Evgeniy
10.05.2018
11:23:33

Shmaltorhbooks
10.05.2018
11:23:39
а жаль

Maksim
10.05.2018
11:23:50

Evgeniy
10.05.2018
11:23:59
но там предупреждают в следующих версиях будет ошибка

Shmaltorhbooks
10.05.2018
11:25:02
а в чем фиаско?
создаёт Closure из callable

Alexander
10.05.2018
11:25:30
как словить два ворнинга в одной строке: https://3v4l.org/LHZvW

Evgeniy
10.05.2018
11:25:38

Admin
ERROR: S client not available

Maksim
10.05.2018
11:25:57
да и хер с ним, с 5.6)

Shmaltorhbooks
10.05.2018
11:25:57
и норм
фиаско-то в чём?
array_column тоже не всегда была

Evgeniy
10.05.2018
11:26:38
ну хорошо хоть var перед свойствами не пишем)

Alexander
10.05.2018
11:26:47

Evgeniy
10.05.2018
11:26:58
уже не пишем если точнее)

Shmaltorhbooks
10.05.2018
11:27:00
а что, это еще законно?

Maksim
10.05.2018
11:27:10
ещё не все уже не пишут)

Google

Evgeniy
10.05.2018
11:27:16
еще раньше любили @ писать

Maksim
10.05.2018
11:27:32
собачки до сих пор тыкают от души :)

Alexander
10.05.2018
11:27:35

Evgeniy
10.05.2018
11:27:43

Maksim
10.05.2018
11:27:52
начни с симфони :)

Shmaltorhbooks
10.05.2018
11:27:54

Pies1
10.05.2018
11:28:05
50 подписчиков бесплатно, без пароля, только ник от инстаграм. НЕ СПАМ! НАДЕЮСЬ НА ПОНИМАНИЕ

Evgeniy
10.05.2018
11:28:12
private const в php 5.6 ?

Shmaltorhbooks
10.05.2018
11:28:33

Maksim
10.05.2018
11:28:39

Shmaltorhbooks
10.05.2018
11:28:47
кстати, да
в 5,6 ввели private const
и массивы как константы

Alexander
10.05.2018
11:29:08
за это надо растреливать
не надо: есть встроенные функции, которые одновременно и результат возвращают, и еще ворнинг кидают, например, file_get_contents

Maksim
10.05.2018
11:29:09
и protected) и public...)

Evgeniy
10.05.2018
11:29:39
https://3v4l.org/cnKIa

Shmaltorhbooks
10.05.2018
11:30:28
https://3v4l.org/VNnUa
а константы как массивы таки в 5,6
то есть наоборот