PHP: <?php // 5.2.4 function _count($arr,$rei=false){ static $iter; if(!$iter) $iter=0; $iter++; return !$rei?count($arr):$iter-1; } $arr=range(0,999);/* for($i=0,$c=_count($arr);$i<$c;$i++){ //1 }*/ for($i=0;$i<_count($arr);$i++){ // 1001 } print _count($arr,true);
У меня точно правильный код. И запрос один раз выполняется. Проверяйте. Иначе он просто зациклил выводя одни и те же данные. Код (Text): foreach(mpql(mpqw("SELECT * FROM `table_name`")) as $k=>$v){ print_r($v); } Код (Text): # Запрос к базе данных function mpqw($sql, $info = null){ global $conf; $microtime = microtime(); $result = @mysql_query($sql, $conf['db']['conn']); if (strlen(mysql_error()) && ($conf['user']['gname'] == $conf['settings']['admin_grp'])) echo "<p>$sql<br><font color=red>".mysql_error()."</font>"; if ($conf['settings']['analizsql_log']){ $num = count($conf['db']['sql']); $conf['db']['sql'][$num]['info'] = $info ? $info : $conf['db']['info']; $conf['db']['sql'][$num]['time'] = substr((substr(microtime(), strpos(microtime(), ' ')) - substr($microtime, strpos($microtime, ' ')) + microtime() - $microtime), 0, 8); $conf['db']['sql'][$num]['sql'] = $sql; } return($result); } Код (Text): # Обработка результата запроса к базе данных function mpql($dbres, $ln = null, $fd = null){ $result = array(); while($line = mysql_fetch_array($dbres, 1)) $result[] = $line; if ($ln !== null){ $result = $result[$ln]; if ($fd) $result = $result[$fd]; } return $result; } Хотя можете не проверять я по логам посмотрел. Запрос вывполняется один раз за 0,000275 c.
Даешь анархию. В топку станадарты. Нах правила оформления. После этого что удивляться что все пишут что попало. Можно. На момент написания было удобно так сделать. Планирую переписать этот участок кода. В модулях эта конструкция не встречается, только в движке несколько раз.
Если переменная будет использоваться один раз. Либо вообще не использоваться. Все верно. В обоих случаях объявлять переменную не стоит.
если запрос будет некорректный, когда и как вы это увидите? а если по дизайну фон будет красный? а если пользователь будет использовать код с таким запросом? покрытие тестами 101% ?)
Код обеих функций используемых в данном случае написан выше. 9 строк в одной и 13 во второй. Я их использую еже не один год. Попробуйте вы. Может что нибудь найдете того что я не смог увидеть за это время. Данные конструкции используются мной повсеместно. Можете посмотреть исходный код ftp://mpak.su/ Не представляю каким образом после столького времени использования код может оказаться нерабочим.
это не ответ на вопросы( могут выпустить версию php, apache, mysql, linux, windows с багом и после обновления ваш код будет нерабочим. или вы уже не один год не обновляетесь?
Стараюсь при первой возможности обновляться до полследних версий. Во всяком случае php http://81.177.32.154/phpinfo
тогда можете ответить на вопрос, как вы увидите сообщение об ошибке красными буквами на красном фоне?) и что получит пользователь в случае ошибки в запросе? и вроде в функциях не 9, и не 13 строк...
Не пойму в чем собственно ошибка. Для пользвователей в процессе работы сайта все ошибки работы скрипта скрываются. Правильно это или не можно поговорить но у меня сделано так. Если считать только содержимое функции то 9 и 13 вместе с обявлением глобавльных переменных и возвратом результата. Будем считать вместе?
Не нада сравнивать себя и свои "правила" со стандартами. Это было сказано конкретно про _ваши_ правила - поток сознания, часто вообще к программированию отношения не имеющий.