diff --git a/tip_dannih_zval/privedenie_tipov_i_operatsii.md b/tip_dannih_zval/privedenie_tipov_i_operatsii.md index d68d7bc..f6966d3 100644 --- a/tip_dannih_zval/privedenie_tipov_i_operatsii.md +++ b/tip_dannih_zval/privedenie_tipov_i_operatsii.md @@ -64,7 +64,7 @@ php_printf("%Z\n", a); /* 45 */ ``` Некоторые бинарные операторы отсутствуют в списке выше. Например, здесь нет операторов `>` и `>=`. Причина этого в том, что вы можете реализовать их воспользовавшись функциями `using is_smaller_function()` и `is_smaller_or_equal_function()` просто поменяв местами операнды. -Также в списке выше нет функций для реализации операций `&&` и `||`. The reasoning here is that the main feature those operators provide is short-circuiting, which you can’t implement with a simple function. If you take short-circuiting away, both operators are just boolean casts followed by a && or || C-operation. +Также в списке выше нет функций для реализации операций `&&` и `||`. Причина этого заключается в том, что главная особенность этих операторов - "short-circuit evaluation" (примечание переводчика: вычисление по принципу "короткого замыкания", когда результат может быть определен на проверке самых первых операндов и нет смысла проверять оставшиеся. Происходит как бы "короткое замыкание". Например, `a && b && c` - если а `false`, то проверять дальше смысла нет), который вы не сможете реализовать с помощью обычной функции. Если отказаться от "короткого замыкания", оба оператора будут просто работать как булево приведение типов операций C - `&&` или `||`. Кроме бинарных операторов также есть унарные (с одним операндом) функции: ```c