$_POST и S_GET - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sat, 11 Jan 2025 07:57:07 +0300 56. <strong>ramzes</strong>, а считаю самым важным повторное использование и модульность. Ради этого можно потратить лишние десять часов на написание кода, зато потом не придется переписывать похожие классы и функции. Могу ошибаться конечно. Вообще написание предусловий дело не сложное, потому редко упаковываю функции в приват. В ЖС написал небольшую функцию, которая позволяет определять типы аргументов на этапе интерпретации, потому там все еще проще https://visavi.net/topics/29043/492647 $_POST и S_GET Артур Wed, 01 Feb 2012 21:57:04 +0400 Сообщения https://visavi.net/topics/29043/492647 55. <strong>Bashka</strong>, зато в скорости написания и понимания хороший выигрыш<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> а ради этого порой стоит и поступиться.<br> П.с. вот я как раз имел ввиду, публичный метод приема данных и приватный метод исполнения. https://visavi.net/topics/29043/492639 $_POST и S_GET ramzes Wed, 01 Feb 2012 21:51:26 +0400 Сообщения https://visavi.net/topics/29043/492639 52. <strong>ramzes</strong>, не в каждом, только в public методах класса, которые принимают какие либо аргументы, закрытые же методы будут точно работать с корректными данными, ведь об этом позаботятся public методы. Почему не делать проверку в одном месте? А как же повторное использование классов? Я придерживаюсь идеи, что мои классы должны работать одинаково, независимо от окружения, в котором используются. Если выносить проверку во вне класса, то при изменении окружения кто то может забыть сделать проверку и передать мусор, а класс не заметит. В моем случае класс всегда ко всему готов. Да и так проще на мой взгляд<br> <br> <em><span style="font-size:x-small">Добавлено через 01:35 сек.</span></em><br> 52. <strong>ramzes</strong>, вообще если проверки часто повторяются, то без проблем, выносим условия в отдельные внешние функции, и используем их в методе, суть от этого не меняется ) просто мы упаковываем код проверки в другом месте и все. Я показал абстрактный пример ;)<br> <br> <em><span style="font-size:x-small">Добавлено через 07:43 сек.</span></em><br> Собственно говоря, если функция должна принимать в качестве аргумента ... то проверку делать в любом случае нужно, а ее централизация по моему сильного выигрыша в скорости не прибавляет. Если и бывает ситуация, когда какой то метод должен проводить сложные проверки и повторяться много раз, я этот метод пакую в приват и создаю один паблик метод, который отвечает за проверку условий и передачу их тому методу (вспомним про Заместителя). Выигрыш в скорости будет отличный https://visavi.net/topics/29043/492607 $_POST и S_GET Артур Wed, 01 Feb 2012 21:26:48 +0400 Сообщения https://visavi.net/topics/29043/492607 <blockquote class="blockquote"><strong>eGo Надежный Дядька</strong> (1 Февраля 2012 / 21:14)<br> 45. <strong>akawin</strong>, а ты проверь.<br> <pre class="prettyprint">&lt;?php var_dump(isset($_POST)); ?&gt;</pre></blockquote> Проверил, я не прав, решение проблемы:<br> if ($_POST) { https://visavi.net/topics/29043/492604 $_POST и S_GET Дмитрий Wed, 01 Feb 2012 21:25:47 +0400 Сообщения https://visavi.net/topics/29043/492604 51. <strong>akawin</strong>, выбрасываются, потому что вызывающий пытается использовать функцию не по назначению. Обрабатывать эти выбросы будет тот, кто передает мусор. Я не полностью понял о чем речь если честно. Вы предлагаете так:<br> <pre class="prettyprint"> &lt;?php ... // предусловия if(...) try{ throw new Exception(...); }catch(Exception $e){ ... } ... // тело ... ?&gt; </pre> https://visavi.net/topics/29043/492602 $_POST и S_GET Артур Wed, 01 Feb 2012 21:23:20 +0400 Сообщения https://visavi.net/topics/29043/492602 36. <strong>Bashka</strong>, как то это очень громоздко выходит, в каждом методе кучу проверок делать..<br> Почему не вынести их в отдельный метод(ы) ? https://visavi.net/topics/29043/492599 $_POST и S_GET ramzes Wed, 01 Feb 2012 21:22:23 +0400 Сообщения https://visavi.net/topics/29043/492599 44. <strong>Bashka</strong>, Под моим вопросом подразумевалось почему исключения выбрасываются, а не перехватываются и не обрабатываются; полезнось такой функции -&gt; 0 https://visavi.net/topics/29043/492597 $_POST и S_GET Дмитрий Wed, 01 Feb 2012 21:18:08 +0400 Сообщения https://visavi.net/topics/29043/492597 48. <strong>Suleiman</strong>, почитай про исключения. Они обычно в главах о ООП. https://visavi.net/topics/29043/492596 $_POST и S_GET Артур Wed, 01 Feb 2012 21:17:58 +0400 Сообщения https://visavi.net/topics/29043/492596 <strong>Bashka</strong>, %)<br> не вывожу я твой код, не дорос наверное еще <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> https://visavi.net/topics/29043/492593 $_POST и S_GET KOZZ Wed, 01 Feb 2012 21:15:22 +0400 Сообщения https://visavi.net/topics/29043/492593 <blockquote class="blockquote"><strong>Bashka</strong> (1 Февраля 2012 / 21:10)<br> 41. <strong>Suleiman</strong>, это исключение. Если оно вызывается, то программа убивается, а тебе выводится то, что в кавычках у него. Исключения можно еще перехватывать. Короче ошибку генерируешь. Если сложно, то можно по старинке ретурн ЛОЖЬ<br> <br> <em><span style="font-size:x-small">Добавлено через 01:55 сек.</span></em><br> 43. <strong>akawin</strong>, для обработки чего? Если в мою функцию передать неверные значения, она начинает убивать все, что ее вызвало. Пусть тот кто вызывает заботится об исключениях, а функция просто &quot;воняет&quot; при попытке передать ей мусор</blockquote> у тебя интересное и не одинарное решение)) надо будет взяться снова за учебник)) пункты подскажи что учить??)) https://visavi.net/topics/29043/492592 $_POST и S_GET Don Wed, 01 Feb 2012 21:14:51 +0400 Сообщения https://visavi.net/topics/29043/492592 45. <strong>akawin</strong>, а ты проверь.<br> <pre class="prettyprint">&lt;?php var_dump(isset($_POST)); ?&gt;</pre> https://visavi.net/topics/29043/492591 $_POST и S_GET KOZZ Wed, 01 Feb 2012 21:14:29 +0400 Сообщения https://visavi.net/topics/29043/492591 Есть принцип Близости - Однотипные операции группировать поближе, чтоб их проще было читать. Вот и выношу все проверки в одно место, а не по всему файлу их ) https://visavi.net/topics/29043/492590 $_POST и S_GET Артур Wed, 01 Feb 2012 21:13:46 +0400 Сообщения https://visavi.net/topics/29043/492590 40. <strong>eGo Надежный Дядька</strong>, Эм... не уверен, его нет если нет данных, $_пост инициализируется только если что-то принято - механизм должен быть таким https://visavi.net/topics/29043/492588 $_POST и S_GET Дмитрий Wed, 01 Feb 2012 21:12:58 +0400 Сообщения https://visavi.net/topics/29043/492588 41. <strong>Suleiman</strong>, это исключение. Если оно вызывается, то программа убивается, а тебе выводится то, что в кавычках у него. Исключения можно еще перехватывать. Короче ошибку генерируешь. Если сложно, то можно по старинке ретурн ЛОЖЬ<br> <br> <em><span style="font-size:x-small">Добавлено через 01:55 сек.</span></em><br> 43. <strong>akawin</strong>, для обработки чего? Если в мою функцию передать неверные значения, она начинает убивать все, что ее вызвало. Пусть тот кто вызывает заботится об исключениях, а функция просто &quot;воняет&quot; при попытке передать ей мусор https://visavi.net/topics/29043/492584 $_POST и S_GET Артур Wed, 01 Feb 2012 21:10:14 +0400 Сообщения https://visavi.net/topics/29043/492584 <blockquote class="blockquote"><strong>Bashka</strong> (1 Февраля 2012 / 21:05)<br> 28. <strong>eGo Надежный Дядька</strong>, приведу абстрактный. Предположим есть функция с такой семантикой имя(строка а, число б, массив в, объект г) при этом предусловия требуют чтобы аргумент а не содержал точек, аргумент б был положительным, а аргумент в был не пустым массивом. Пишем функцию с предусловием:<br> <pre class="prettyprint"> &lt;?php function name($a, $b, array $c, object $d){ // предусловия if(!is_string($a) || strpos(&#039;.&#039;, $a) !== false) throw new \Exception(&#039;...&#039;); if(!is_integer($b) || $b &lt; 0) throw new \Exception(&#039;...&#039;); if(!count($c)) throw new \Exception(&#039;...&#039;); // тело функции ... } ?&gt; </pre> примерно так</blockquote> А почему вы не используете для обработки try {} cath (){} https://visavi.net/topics/29043/492582 $_POST и S_GET Дмитрий Wed, 01 Feb 2012 21:09:05 +0400 Сообщения https://visavi.net/topics/29043/492582