Главное различие между stubs и mocks заключается в том, что в одном случае мы управляем состоянием, а в другом - поведением.
Когда мы используем mocks, мы заменяем весь модуль на mock (ложный, тестовый объект, имитирующий настоящий). А stub - это функция, которая всегда выводит один и тот же результат, вне зависимости от того, что было подано на вход. Mocks используют для того, чтобы проверить, была ли функция вызвана с правильными аргументами, а stubs, чтобы протестировать, как функция работает с полученным ответом. Стабы нужны для проверки состояния метода, а моки используются для регулировки поведения.
<?php
$input_data = Array (
0 => Array ( 0 => 24.13000000, 1 => 883.80000000 ),
1 => Array ( 0 => 24.12000000, 1 => 1605.01000000 ),
2 => Array ( 0 => 24.11000000, 1 => 3260.20000000 ),
);
//трансформируем исходные данные к нужному виду
$result = array_reduce($input_data, function($r, $item) {
$r[] = ['tick' => $item[0], 'price' => $item[1]];
return $r;
});
//сортируем по убыванию price
array_multisort(array_column($result, 'price'), SORT_DESC, $result);
print_r($result);
close()
после каждого запроса в принципе. Просто уберите эти строчки.$mysqli->close();
тоже не имеет смысла делать, если вы четко не понимаете для чего это. PHP удалит все дескрипторы и закроет соединение автоматически при окончании работы скрипта. function endsWith($haystack, $needle) {
$length = strlen($needle);
return $length > 0 ? substr($haystack, -$length) === $needle : true;
}
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $html, false, false);
function getUserRole() {
static $user_role = null;
if(is_null($user_role) {
//запросы к базе и присвоение нужного значения в $user_role
}
return $user_role;
}
getUserRole()
и получать один и тот же результат без повторных запросов в БД в рамках работы скрипта