From 4b2a7df8e166e9a628b5636ab9c1e19b1614e212 Mon Sep 17 00:00:00 2001 From: Daniil Kasabov aka DG Date: Sun, 24 Jan 2016 04:22:33 +0300 Subject: [PATCH] Translate in 'Privedenie_tipov_i_operatsii' paragraph MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По поводу "короткого замыкания": https://en.wikipedia.org/wiki/Short-circuit_evaluation --- tip_dannih_zval/privedenie_tipov_i_operatsii.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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