Как стать автором
Обновить
12
0
NickyX3 @NickyX3

Пользователь

Отправить сообщение

Ну по факту работа нотариуса засвидетельствовать факт, что оба участника сделки согласны с тем, что "один отдал", "второй получил". Что они там передали и как - вторично. Я имел ввиду что простой распиской обычно не обходится. Ибо её как раз обжаловать можно (ну типа под угрозой писал и всё такое)

Сейчас в РФ передача денег в присутствии нотариуса обычно происходит. Или банковский перевод через оператора в банке со справкой и заверкой справки опять у нотариуса, который подтверждает передачу средств

Ну так в том и суть, что array_key_exists проверяет именно ключ.

Наличие. Но читаем внимательно - я писал что в 98% случаев мне не нужно проверять наличие ключа, мне нужно проверить что в нем вообще что-то есть более осмысленное чем null

Учитывая, что GigaIDE это Intelij IDEA CE, к которой поддержка PHP (в виде php storm или php plugin) является коммерческим продуктом, то неудивительно, что их там нет.

Да, но для чего мы проверяем существование ключа? Если у вас бизнес логика подразумеват наличие null-значения, то да, придется использовать array_key_exists. У меня (подозреваю, что не только у меня) в 99% случаешь проверка isset($a['somekey']) служит для того, чтоб выяснить есть ли там валидное не null значение, которое как-то нужно обработать.

По факту isset($a['somekey']) заменяет if(array_key_exists("nonExistentKey", $a) && !is_null($a['somekey']))

Значит он тупее, чем я думал, либо через кастом классы с apply оно работает не так (в apply взаимоисключающие свойства перекрываются последним для ЭТОГО блока, что логично)

На их месте, очевидно, что в двух данных блоках есть различия в bg-* и можно было бы сгенерить цепочки, которые работали бы правильнее

.bg-red-200.h-20.h-10 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity));
  height: 2.5rem;
}
.bg-green-200.h-10.h-20 {
  --tw-bg-opacity: 1;
  background-color: rgb(187 247 208 / var(--tw-bg-opacity));
  height: 5rem;
}

проверьте, даже интересно, я в целом могу предпололжить как сделал бы я на месте tw, но что будет у них, я хз.
Подозреваю что сгенерится два класса
.w-big.w-small {}
.w-small.w-big {}

Понятно, что в обычном варианте они будут взаимоисключающие. Но я бы еще взял вышестоящие элементы и попробовал наследоваться от них если они разные

Я про сами шаблоны ничего не говорил, он прочитает все указанные в разделе content конфига и будет строить цепочки по тем классам, которые там указаны + входящй css c apply.

Насколько я видел код битрикса N-летней наверное давности - там всё было очень криво

сменили версии php 5.4->5.6->7.0-7.2->8.0

Мы сменили в одном проекте версии с 5.0 до 8.3 исправив только create_function в preg_replace_callback с выходом 8.0 в паре мест на замыкание.

Все зависит от того как изначально написан php-код. В соседнем проекте так просто не было, но там и кодили его изначально очень странные персонажи (со странными решениями и любители Go в настоящее время, кхе-кхе)

if(array_key_exists("nonExistentKey", $a)) {return;}

Еще короче

if ( isset($a['nonExistentKey']) ) {...}}

 Я таки победил лень, написал демо код и проверил:

Я вам написал все варианты выше. Ассоциативные массивы кодируются как js object, индексные, включая пустые - как js array

Для начала задайте вопрос себе: в чем отличие ассоциативного массива от обычного с точки зрения логики, а не внутреннего устройства (которое в php, помнится, одинаковое)?

  1. Пустой массив не является ассоциативным. И поэтому кодируется как список [], так же как и непустой и не ассоциативный.

  2. Непустой ассоциативный кодируется как объект {}, потому что очевидно, по другому в js его не закодировать

  3. При чем тут принимающая сторона? Писать правильный код нужно кодирующей стороне

После компиляции tail становится худым донельзя

В этом и смысл, остается только то, что включено в дефолтное поведение и те классы и их наборы, которые есть в файлах через @apply или в верстке

Да. В этом и заключается весь смысл этой ветки

Увы. Смысл этой ветки в том, что люди, которым требуется объект на выходе – пихают вместо него массив, а потом говорят, что php говно.

Логика вообще полезная штука. Или Вы хотите оспорить утверждение, что ['a','b'] это «непустой массив»? Вы считаете что он «пустой» или что он «не массив»?

мы с вами

Оглянулся, я тут вроде один, не надо ко мне во множественном числе обращаться :-)

 тест на регулярки в go и php)

А что в go какие-то свой регулярки? КМК смысла сравнивать особо нет, в PHP libpcre/libpcre2 как и в 90% остального софта

От этого и синтаксис, как по мне, получается нелепый (непривычным на фоне остальных языков) - с этими вездесущими тэгами в начале файла,

Этот «нелепый» синтаксис на 80% совпадает с синтаксисом Java и C++

обязательными $ для переменных и т.п.

Ну один символ для всех переменных это не так уж и страшно, ничего такого. Поглядите в Perl, там $ для скаляров, @ для списков и % для хешей. Никто не жаловался

Речь шла про json_encode и пустые массивы. Которые действительно по умолчанию кодируются в список.

А что, непустые массивы кодируются во что-то другое?
В json объекты {} кодируются по-умолчанию ассоциативные массивы, простые же массивы (ок, они же и есть списки) кодируются как json списки [], так же как и пустые массивы (которые из за своей «пустоты» не являются ассоциативными).

Если уж бизнес логика @posledam желает получить в json именно пустой объект, то почему кто-то туда пихает массив? Где логика? Хотите пустой объект - пихайте пустой объект. А уж как его приготовить в php, через new \stdClass() или кастинг (object) [] не важно. Мне лично понятнее первое.

$a  = []; // пустой массив
$b  = ['m1','m2']; // не пустой массив
$c  = ['k1'=>'v1','k2'=>'v2']; // не пустой ассоциативный массив
$o  = new \stdClass(); // новый объект
$of = (object) []; // объект из массива через кастинг
echo json_encode(['a'=>$a,'b'=>$b,'c'=>$c,'o'=>$o,'of'=>$of],JSON_UNESCAPED_UNICODE);
{"a":[],"b":["m1","m2"],"c":{"k1":"v1","k2":"v2"},"o":{},"of":{}}

Еще раз: в случае tailwind и его "атомарных" классов "компилятор" в результирующий css сам сгенерит такую последовательность, чтобы именно последний, указанный (из взаимно-исключающих атомов) в верстке, применился.

Если, конечно, вы будете "компилировать" шаблоны и директивы, а не выкатите полный набор tw как есть

Чтоб в PHP получить в json_encode {} надо налепить туда объект как-то так

// чтоб получить {} надо сговнякать объект
$a = new \stdClass();
$a->foo = 'foo';
$a->bar = 'bar';

// а "плоский" список даст []
$b = ['foo','bar'];

echo json_encode(['a'=>$a,'b'=>$b]);
{"a":{"foo":"foo","bar":"bar"},"b":["foo","bar"]}

Я, честно говоря, хз как это можно не различать и говнякать всегда {}?

1
23 ...

Информация

В рейтинге
4 008-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, HTML Coding
Middle
Git
JavaScript
HTML
CSS
Adaptive layout
Web development
JQuery