The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз языка программирования PHP 8.0, opennews (ok), 26-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


36. "Релиз языка программирования PHP 8.0"  +4 +/
Сообщение от Страшный аноним (?), 26-Ноя-20, 19:39 
Вы еще javascript не видели, где (6 + '6') === "66"
Ответить | Правка | Наверх | Cообщить модератору

47. "Релиз языка программирования PHP 8.0"  –2 +/
Сообщение от menangen (?), 26-Ноя-20, 19:51 
А точнее 2 плюс строка “6” будет новая строка «26» - всё логично, не в число же строку «6» конвертить - кто его знает что там в твоей строке закодировано- это ж просто набор байт
Ответить | Правка | Наверх | Cообщить модератору

57. "Релиз языка программирования PHP 8.0"  +2 +/
Сообщение от Страшный аноним (?), 26-Ноя-20, 19:57 
Просто использовать для конкатенации в строки отличный знак от знака "+". Например в древнем Visual Basic это "&", в PL/SQL - "||"
Ответить | Правка | Наверх | Cообщить модератору

92. "Релиз языка программирования PHP 8.0"  –2 +/
Сообщение от Lex (??), 26-Ноя-20, 21:10 
Одно - булевы операции, другое - логические

Время офигительных идей по конкатенации.
А если я строку к строке хочу «прибавить» - тож отдельный символ или их набор придумывать ?)
Но это уже к разговору о том, что «конкатенация» строк именно «+» - это, в общем-то, общепринятый стандарт для многих ЯП

Собсно, от того и «видов» проверки равенства несколько - с автоприведением к типу( т.е просто проверка по значению ) и с проверкой равенства самого типа

Ответить | Правка | Наверх | Cообщить модератору

113. "Релиз языка программирования PHP 8.0"  +2 +/
Сообщение от Sw00p aka Jerom (?), 26-Ноя-20, 22:41 
> Одно - булевы операции, другое - логические

И "одно" и "другое" - одно и тоже.


Ответить | Правка | Наверх | Cообщить модератору

167. "Релиз языка программирования PHP 8.0"  –1 +/
Сообщение от Lex (??), 27-Ноя-20, 07:21 
>> Одно - булевы операции, другое - логические
> И "одно" и "другое" - одно и тоже.

ЖС-кудах, ты ли это ?)

5 | 2 = 0b00000101 | 0b00000010 = 0b00000111 = 7

5 || 2 = 5 != false || 2 != false = true || true = true
Хотя, каюсь, в последнее время для общего случая второй вариант работает иначе - как условная подстановка, т.е:
5 || 2 = Boolean( 5 ) ? 5 : 2 = 5
0 || 2 = Boolean( 0 ) ? 0 : 2 = 2
Его, в общем случае, используют для инициализации значения по умолчанию, если дальнейшая работа с неопределенными значениями доставляет кучу проблем:
const someData = possiblyNullOrUndefnedValue || "Ну не передано значия, ***тЪ!";
В итоге, в someData будет либо значение из первой переменной, либо - из второй( если в неопределенное значение ).

Можете чисто для хохмы даже в браузерной консоли проверить.
Вариант с логическими операциями выдаст семерку,
Первый вариант из "логических", для общего случая, даст пятерку, для второго - двойку

Ответить | Правка | Наверх | Cообщить модератору

177. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Аноним (180), 27-Ноя-20, 08:35 
Вы хотели сказать битовые операции
Ответить | Правка | Наверх | Cообщить модератору

199. "Релиз языка программирования PHP 8.0"  –1 +/
Сообщение от Lex (??), 27-Ноя-20, 10:30 
> Вы хотели сказать битовые операции

Да, в одном из случаев очепятка

Но сути не меняет, что в жс | и || - принципиально разные штуки

Ответить | Правка | Наверх | Cообщить модератору

182. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Sw00p aka Jerom (?), 27-Ноя-20, 08:53 
На досуге

https://ru.wikipedia.org/wiki/%D0%91%D0%...

https://ru.wikipedia.org/wiki/%D0%9B%D0%...

https://ru.wikipedia.org/wiki/%D0%91%D1%...

Ответить | Правка | К родителю #167 | Наверх | Cообщить модератору

114. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Страшный аноним (?), 26-Ноя-20, 23:04 
Придуряешься или на самом деле? В VB и PL/SQL операторы сравнения - "AND" и "OR".
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

166. "Релиз языка программирования PHP 8.0"  –1 +/
Сообщение от Lex (??), 27-Ноя-20, 07:19 
> Придуряешься или на самом деле? В VB и PL/SQL операторы сравнения -
> "AND" и "OR".

Придурящеься тут только ты. Кого волнует, как оно в вб и прочем мусоре написано, если оно уже есть в жс и пишется иначе ?

п.с: в более общем случае выше ответил

Ответить | Правка | Наверх | Cообщить модератору

218. "Релиз языка программирования PHP 8.0"  +1 +/
Сообщение от Страшный аноним (?), 27-Ноя-20, 11:29 
Как все запущено. Оказывается что на самом деле. Ты так и не понял посыл, что в нормально спроектированных языках программирования оператор математического сложения "+" не должен использоваться для конкатенации строк и неявного приведения типа, что ведет к разного рода ошибкам.
Ответить | Правка | Наверх | Cообщить модератору

232. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Sw00p aka Jerom (?), 27-Ноя-20, 12:44 
> Как все запущено. Оказывается что на самом деле. Ты так и не
> понял посыл, что в нормально спроектированных языках программирования оператор математического
> сложения "+" не должен использоваться для конкатенации строк и неявного приведения
> типа, что ведет к разного рода ошибкам.

Так ведь он не виноват, что создатель языка допустил такое трактование "+" как математического оператора сложения, так и оператора конкатенации строк (операнды имеют тип числа - складывай, тип строк - конкатенируй, а если один из операндов типа строки, а другой числа, то что? - все так же, как решит создатель языка). А че супер когда язык еще и позволяет переопределять поведение того или иного обще принятого оператора, я думаю вы поняли к чему я клоню :)

Ответить | Правка | Наверх | Cообщить модератору

85. "Релиз языка программирования PHP 8.0"  +3 +/
Сообщение от банан (?), 26-Ноя-20, 20:49 
>  всё логично

только в реальности вы не увидите такого кода

(6 + '6') === "66"

вы увидите такой

(money1 + money2) === money3

я вообще, если честно, бил бы палкой людей, которые убеждают окружающих что приведение типов в js логично.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

187. "Релиз языка программирования PHP 8.0"  +/
Сообщение от Туретта Хуюндберг (?), 27-Ноя-20, 09:55 
> я вообще, если честно, бил бы палкой людей, которые убеждают окружающих что приведение типов в js логично

Потом такие нетривиальные баги вылезают, что в десять раз больше времени потратишь на их поиск.
С нестрогой типизацией такое "удобство", что оно потом боком вылезает.

Ответить | Правка | Наверх | Cообщить модератору

98. "Релиз языка программирования PHP 8.0"  +2 +/
Сообщение от Аноним (40), 26-Ноя-20, 21:29 
Единственное, что в такой ситуации было бы логично, это кинуть исключение. Потому что код написан jопой и явно будет делать не то, чего от него ожидали.
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

214. "Релиз языка программирования PHP 8.0"  –2 +/
Сообщение от Аноним (354), 27-Ноя-20, 11:02 
А так же мы не видели java, c# и т.д. где тоже самое
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

284. "Релиз языка программирования PHP 8.0"  –1 +/
Сообщение от банан (?), 27-Ноя-20, 19:47 
> А так же мы не видели java, c# и т.д. где тоже самое

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

(6 +  (int)'6') == (int) (object) "66"

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру