const boxScroll = document.querySelector('.box__list_scroll');
const boxImgs = document.querySelectorAll('.box__imgs > .box__img');
boxScroll.addEventListener('scroll', event => {
const sh = event.target.scrollHeight;
const h = event.target.offsetHeight;
const y = event.target.scrollTop;
const len = boxImgs.length;
const t = y / (sh - h);
const index = Math.floor((len - 1) * t);
boxImgs.forEach((img, i) => img.classList.toggle('__active', i === index));
});
В переменной $config массив:Массив состоит из 1 элемента, было бы странно ожидать что итераций foreach будет больше одной. Возможно имеет смысл проверять переменные чаще, если результат не соответствует ожиданиям, var_dump/dd($lang) внутри foreach был бы очень кстати...
(new Decimal\Decimal('153.17'))->mul(100)->toInt(); // 15317
(int)bcmul('153.17', '100'); // 15317
общепринятых нормах поведения
use App\Models\Post;
$posts = Post::doesntHave('comments')->get();
develop - Enables Development Helpers including the overloaded var_dump().
xdebug.mode
прописать значение develop
&&
и ||
возвращают свои операнды:1 && "2" // строка "2"
0 && "2" // число 0
0 || "2" // строка "2"
1 || false // число 1
&&
: для позитивного результата нужно, чтобы оба операнда были как-true. Проверка идёт слева направо. Как только наткнулись на как-false, возвращается он. Прошли всю цепочку и все по пути были как-true — вернули последний из них.||
даст позитивный результат, как только наткнётся хоть на один как-true. Его и вернёт. Ну или проверит все значения и если все как-false, вернёт последний из них.1 && "2" && "habr" // вернёт "habr"
"1" && 0 && "qna" // 0
0 || false || "habr" === "qna" // false, результат ("habr" === "qna")
0 || 1 || 2 || true // 1, дальше проверять не пришлось
echo preg_replace_callback('~\[(.+?)\]~', fn($m) => $array[$m[1]] ?? $m[0], $message);
$letter = 'М';
$i = 0;
foreach (explode(', ', implode(', ', $products)) as $product) {
if (strpos($product, $letter) === 0) {
echo (++$i).") $product\n";
}
}
foreach( $arr as $key=>$value ) {
if ($value[1]) {
printf("%s %s\n", $value[0], $value[2]);
}
}
// Перебор массива
foreach( $arr as $key=>$value ) {
if ($$key) {
printf("%s %s\n", $value[0], ucfirst($key));
}
}