Size: a a a

2020 October 12

МЯ

Михаил Я in PHP
Парни привет. Нужен ваш ответ. На сколько знаю в некоторых языках программирования foreach получает каждый обход значение из массива (то есть нужно сначала заранее занести массив в переменную а потом уже передавать в foreach).
Как дела с PHP ?
Вот пример. Я ожидаю что он ОДИН раз сделает запрос в базу, получит результат и конвертирует в массив, потом будет его обходить. Но есть опасение что каждый обход он будет делать запрос в базу.
foreach ($row as $db->query('....')->fetch_all()) {
   

}
источник

SB

Sergei Baikin in PHP
Михаил Я
Парни привет. Нужен ваш ответ. На сколько знаю в некоторых языках программирования foreach получает каждый обход значение из массива (то есть нужно сначала заранее занести массив в переменную а потом уже передавать в foreach).
Как дела с PHP ?
Вот пример. Я ожидаю что он ОДИН раз сделает запрос в базу, получит результат и конвертирует в массив, потом будет его обходить. Но есть опасение что каждый обход он будет делать запрос в базу.
foreach ($row as $db->query('....')->fetch_all()) {
   

}
я бы рекомендовал курсор использовать а не базу в память копировать
источник

МЯ

Михаил Я in PHP
Sergei Baikin
я бы рекомендовал курсор использовать а не базу в память копировать
а можно подробнее ? что значит "курсор"
источник

SB

Sergei Baikin in PHP
Михаил Я
а можно подробнее ? что значит "курсор"
почитайте в гугле что такое курсор в базе данных и как его использовать и почему
источник

АС

Альберт Степанцев... in PHP
Михаил Я
Парни привет. Нужен ваш ответ. На сколько знаю в некоторых языках программирования foreach получает каждый обход значение из массива (то есть нужно сначала заранее занести массив в переменную а потом уже передавать в foreach).
Как дела с PHP ?
Вот пример. Я ожидаю что он ОДИН раз сделает запрос в базу, получит результат и конвертирует в массив, потом будет его обходить. Но есть опасение что каждый обход он будет делать запрос в базу.
foreach ($row as $db->query('....')->fetch_all()) {
   

}
query() массив возвращает или является генератором?
источник

МЯ

Михаил Я in PHP
Альберт Степанцев
query() массив возвращает или является генератором?
prepare_args + execute + get_result.

fetch_all это PHP родное
источник

АС

Альберт Степанцев... in PHP
Если первое, то функция отработает ровно один раз, перед первой итерацией цикла
источник

АС

Альберт Степанцев... in PHP
Михаил Я
prepare_args + execute + get_result.

fetch_all это PHP родное
Это pdo
источник

АС

Альберт Степанцев... in PHP
Наверное
источник

МЯ

Михаил Я in PHP
Sergei Baikin
я бы рекомендовал курсор использовать а не базу в память копировать
а курсоры есть в PHP + MySQLI ?
источник

АС

Альберт Степанцев... in PHP
Михаил Я
а курсоры есть в PHP + MySQLI ?
Курсоры есть в базах данных, а не в php
источник

МЯ

Михаил Я in PHP
ладно что то вас понесло не туда))) я не 1С битрикс пишу, не надо мне курсоров спс. Сам протестирую
источник

RV

Roma Vandolyak in PHP
Почти в стикеры можно
источник

АА

Асан Абдурахманов... in PHP
здравствуйте. как обойти эту проблему?
источник

m

mayhem in PHP
https://www.php.net/manual/en/language.types.float.php

So never trust floating number results to the last digit, and do not compare floating point numbers directly for equality. If higher precision is necessary, the arbitrary precision math functions and gmp functions are available
источник

АС

Альберт Степанцев... in PHP
Асан Абдурахманов
здравствуйте. как обойти эту проблему?
учить математику
и использовать для сравнения неточных чисел сравнение их разности с некоей дельтой, близкой к точности формата
источник

DT

Dmitriy Tkachenko in PHP
Roma Vandolyak
Почти в стикеры можно
Яб добавил
источник

S

Shurick in PHP
Асан Абдурахманов
здравствуйте. как обойти эту проблему?
<?php
function float_str($float){
 return sprintf('%.8f', (double)$float);
}

echo float_str(10.0-9.91) . PHP_EOL;
echo float_str(0.09) . PHP_EOL;
var_dump( float_str(10.0-9.91) === float_str(0.09) );
источник

Y

Yaroslav in PHP
Михаил Я
а курсоры есть в PHP + MySQLI ?
источник

Y

Yaroslav in PHP
Асан Абдурахманов
здравствуйте. как обойти эту проблему?
ValueObject Money  $money->isEqualTo($anotherMoney)
источник