fetch_assoc
возвращает одну строку, а вы через foreach пытаетесь работать с ней как с массивом строк. While работает принципиально иначе — там на каждой итерации запрашивается новая строка.($dir == 'первый-вариант') || ($dir == 'второй-вариант')Директория равна первому варианту ИЛИ директория равна второму варианту. Это условие будет выполняться только при двух перечисленных значениях $dir.
($dir != 'первый-вариант') || ($dir != 'второй-вариант')Директория не равна первому варианту ИЛИ директория не равна второму варианту. Это условие будет выполняться всегда - если $dir не равна ни одному из вариантов, то условие выполнится. Если равна первому, то заведомо не равна второму и наоборот - условие всегда выполняется.
if (
($APPLICATION->GetCurDir() != '/otdykh-u-ivanycha/')
&& ($APPLICATION->GetCurDir() != '/otdykh-u-ivanycha/banya-1/')
) {}
class MyTest extends \PHPUnit\Framework\TestCase
{
public function testDoSomethingOne(): void
{
/** @var \PHPUnit\Framework\MockObject\MockObject $mockOfA */
$mockOfA = $this->getMockBuilder(A::class)->getMock();
$mockOfA->expects($this->once())
->method('setData')
->with(20);
(new B)->doSomething($mockOfA, 1);
}
public function testDoSomethingTwo(): void
{
/** @var \PHPUnit\Framework\MockObject\MockObject $mockOfA */
$mockOfA = $this->getMockBuilder(A::class)->getMock();
$mockOfA->expects($this->once())
->method('setData')
->with(10000);
(new B)->doSomething($mockOfA, 100);
}
}
The practice of replacing an object with a test double that verifies expectations, for instance asserting that a method has been called, is referred to as mocking.
https://api-maps.yandex.ru/2.1/?apikey=<ваш API-ключ>&lang=ru_RU
setDelay = param => {
setTimeout(() => console.log("выполнен", param), param*1000)
}
for(var i = 0; i < 10; i++) {
setDelay(i);
console.log("установлен", i);
}
setDelay = async (param) => {
return new Promise((resolve) => {
setTimeout(() => {
console.log("выполнен", param);
resolve();
}, param * 1000);
})
}
for(var i = 0; i < 10; i++) {
console.log("установлен", i);
await setDelay(i);
}
usort($mymenu, function($a, $b) use ($key, $sort) {
$a = $a[$key];
$b = $b[$key];
$sort = printMenu($sort) == SORT_ASC ? 1 : -1;
return $sort * ($a <=> $b ? 0 : $a > $b ? 1 : -1);
});
$("#who").on("keyup", function() {
var searchText = $(this).val().toLowerCase() || "___";
$("#poisk > div").each(function() {
var elem = $(this);
if (elem.text().toLowerCase().indexOf(searchText) !== 0) {
elem.addClass("hidden");
} else {
elem.removeClass("hidden");
}
});
});
route(
'route.name',
array_merge(
request()->query(),
[
'sortBy' => 'relevance_score',
'sortOrder' => ($currentSortBy === 'relevance_score' && $currentSortOrder === 'asc') ? 'desc' : 'asc',
]
)
)
if (array_key_exists('test', $_POST)) {
$_SESSION['test'] = $_POST['test'];
}
<a href="#">Раз я никуда не веду, я должна быть кнопкой, а не ссылкой</a>
, выражение $($.attr(this, 'href')).offset().top
превращается в $('#').offset().top
и jQuery не знает что с этим делать.