$_POST и S_GET - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Sat, 11 Jan 2025 07:57:07 +030056. <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/49264755. <strong>Bashka</strong>, зато в скорости написания и понимания хороший выигрыш<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> а ради этого порой стоит и поступиться.<br>
П.с. вот я как раз имел ввиду, публичный метод приема данных и приватный метод исполнения.
https://visavi.net/topics/29043/492639
$_POST и S_GET ramzesWed, 01 Feb 2012 21:51:26 +0400Сообщенияhttps://visavi.net/topics/29043/49263952. <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"><?php
var_dump(isset($_POST));
?></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/49260451. <strong>akawin</strong>, выбрасываются, потому что вызывающий пытается использовать функцию не по назначению. Обрабатывать эти выбросы будет тот, кто передает мусор. Я не полностью понял о чем речь если честно. Вы предлагаете так:<br>
<pre class="prettyprint">
<?php
...
// предусловия
if(...) try{
throw new Exception(...);
}catch(Exception $e){
...
}
...
// тело
...
?>
</pre>
https://visavi.net/topics/29043/492602
$_POST и S_GET АртурWed, 01 Feb 2012 21:23:20 +0400Сообщенияhttps://visavi.net/topics/29043/49260236. <strong>Bashka</strong>, как то это очень громоздко выходит, в каждом методе кучу проверок делать..<br>
Почему не вынести их в отдельный метод(ы) ?
https://visavi.net/topics/29043/492599
$_POST и S_GET ramzesWed, 01 Feb 2012 21:22:23 +0400Сообщенияhttps://visavi.net/topics/29043/49259944. <strong>Bashka</strong>, Под моим вопросом подразумевалось почему исключения выбрасываются, а не перехватываются и не обрабатываются; полезнось такой функции -> 0
https://visavi.net/topics/29043/492597
$_POST и S_GET ДмитрийWed, 01 Feb 2012 21:18:08 +0400Сообщенияhttps://visavi.net/topics/29043/49259748. <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 KOZZWed, 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>, для обработки чего? Если в мою функцию передать неверные значения, она начинает убивать все, что ее вызвало. Пусть тот кто вызывает заботится об исключениях, а функция просто "воняет" при попытке передать ей мусор</blockquote>
у тебя интересное и не одинарное решение)) надо будет взяться снова за учебник)) пункты подскажи что учить??))
https://visavi.net/topics/29043/492592
$_POST и S_GET DonWed, 01 Feb 2012 21:14:51 +0400Сообщенияhttps://visavi.net/topics/29043/49259245. <strong>akawin</strong>, а ты проверь.<br>
<pre class="prettyprint"><?php
var_dump(isset($_POST));
?></pre>
https://visavi.net/topics/29043/492591
$_POST и S_GET KOZZWed, 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/49259040. <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/49258841. <strong>Suleiman</strong>, это исключение. Если оно вызывается, то программа убивается, а тебе выводится то, что в кавычках у него. Исключения можно еще перехватывать. Короче ошибку генерируешь. Если сложно, то можно по старинке ретурн ЛОЖЬ<br>
<br>
<em><span style="font-size:x-small">Добавлено через 01:55 сек.</span></em><br>
43. <strong>akawin</strong>, для обработки чего? Если в мою функцию передать неверные значения, она начинает убивать все, что ее вызвало. Пусть тот кто вызывает заботится об исключениях, а функция просто "воняет" при попытке передать ей мусор
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">
<?php
function name($a, $b, array $c, object $d){
// предусловия
if(!is_string($a) || strpos('.', $a) !== false) throw new \Exception('...');
if(!is_integer($b) || $b < 0) throw new \Exception('...');
if(!count($c)) throw new \Exception('...');
// тело функции
...
}
?>
</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