Возникла необходимость рефакторинга довольно старого кода на php, написанного примерно в 2005м году. Код запускается на php 5.3 но обрабатывается явно не корректным способом.
В многих местах кода встречается символ амперсанда (&) для математических операций, которые вызывают сомнения. Я знаю, что это $a & $b = чисто из бит которые установлены в $a и в $b, но данное поведение явно ошибочное, так как код работает не корректно.
setcookie('neme', 'value', time() & 604800);
где по логите time() & 604800 должно быть как time() + 604800
$a= imagecreatetruecolor( 133 & 1, 59 & 1 );
Подобный мест довольно много в коде. Подскажите, как правильно изменить код для его корректной работы?
Разберем поведение побитового И
для 5.3 и 7.4 версий.
time() & 604800
Код для теста:
$t = time();
echo $t . PHP_EOL;
echo $t & 604800;
Результат в php 5.3: 1604695647 78336
Результат в php 7.4: 1604695691 78464
Вывод: Логка поведения &
не изменилась
133 & 1, 59 & 1
Код для теста:
echo (133 & 1) . PHP_EOL;
echo 59 & 1;
Результат в php 5.3: 1 1
Результат в php 7.4: 1 1
Как видим результат идентичен.
Разберемся теперь с функциями, может они как раз вели себя по разному в разных версиях
Рассмотрим setcookie
Код для теста
setcookie('neme', 'value', time() & 604800);
print_r($_COOKIE);
Результат в php 5.3: array()
Результат в php 7.4: array()
Ситуацая с imagecreatetruecolor
аналогичная.
ВЫВОД Данный код, работает идентично для этих двух версий php
, из этого вытекает, что он в принципе не может работать на одной версии, а на другой нет. Скорее всего вы очень плохо разобрались в данном коде. Советую вам удостовериться что именно этот код используеться для установки куки, может это просто мертвый код а вы над ним голову ломаете.
P.s Побитовое И
работает одинаково для всех языках программирования.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйста, нужно реализовать извлечение текста из картинок(png, jpg)Как на сервисе https://img2txt
Изображения сохраняются в директорию images/Можно ли как то запретить прямой доступ по url, но дать возможность выводить с помощью тега img? Я думал...