[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Странное поведение функций
neopk
Добрый вечер! Только что столкнулся с интересным поведением функций. Дело в том, что рабочий код, обрамленный в функцию не работает, как работает без функции. Решив исследовать этот момент я дописал в теле одного цикла echo "stirng"; и чудесным образом функция выполнилась как надо :). Собственно и не понятно такое поведение. Причем если писать echo прямо перед закрытием функции, то она уже не выполняется как надо.

Я понимаю, что наверняка сказывается не доученая мат. часть, но объяснения в книгах и интернете этому поведению не нашел, поэтому буду рад помощи.

Спасибо, за раннее) Вот функция, если интересно. Работаю с wordress'ом, а именно woocommerce'ом

function get_array_postid() {
$arg = 0;
while ( have_posts() ) {
the_post();
$img_position[] = img_position();
$postid[] = $post->ID;
$arg_num = $arg; //для поиска узкой карточки
$count['num'] += $img_position[$arg]; //сумма строки
if ( is_int(($count['num'] - 9)/8) and $img_position[$arg] == 2 ) { // сумма строки = 8; так проверям на неправельность строки
while ($count['num'] >= 0 ) {
--$arg_num; //счетчик для поиска узкой карточки
$count['num'] = $count['num'] - $img_position[$arg_num];
if ( $img_position[$arg_num] == 1 ) {
$count_id_1 = $postid[$arg_num]; // номер найденной узкой карточки
unset( $postid[$arg_num] ); //уничтожаем старое id карточки
$postid[$arg + 1] = $count_id_1; //записываем на первое место след. строки найденую узкую карточку
$count['num'] = 1;//новая строка начинается с узкой карточки
$postid = array_values($postid);
break;
}
}
}

++$arg;
}

//собственно вывод списка товаров
$arg = 0; $count['num'] = 0; $img_position = array();
while ( each($postid) ) {
the_post();
$product->id = $postid[$arg]; $post->ID = $postid[$arg]; $product->ID = $postid[$arg];
$img_position[] = img_position();
$count['num'] += $img_position[$arg];
if ($count['num'] == 8) { $count['string'] += 1; $count['num'] = 0; }
++$arg;
woocommerce_get_template_part( 'content', 'product' );
if ( is_front_page() ) {
if ($count['string'] == 2) { break; } // 2 строки на главной
}
} }

get_array_postid();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.