Задать вопрос
Slash-Zn
@Slash-Zn

Почему после сравнения меняется значение переменных?

Есть простое условие:

if ($this->pagesCount < $params['page'])

Тут сравниваю общее количество страниц пагинации с номером текущей страницы. Условие довольно простое, но, присутствует магия, которую я не могу никак понять. Если сделать так:

echo $this->pagesCount . ' * ' . $params['page'];
		// Между этими строками НЕТ НИ ЧЕГО!
		if ($this->pagesCount < $params['page'])
		{
			echo $this->pagesCount . ' * ' . $params['page'];

То на экране мы увидим следующее:

2 * 2 // Это до условия
0 * 2 // Это после сравнения

То есть значения переменной изменилось. Из за этого условие работает неправильно... Если сделать так:

if ($this->pagesCount <= $params['page'])

То значение не меняется, но, такая проверка не нужна.

Почему такое может происходить?
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой 10 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Фокус:
echo $this->pagesCount . ' * ' . $params['page'];
    if ($this->pagesCount < $params['page'])
    {
       echo 'inside if: ' . $this->pagesCount . ' * ' . $params['page'];
       ...
    }
echo 'after if: ' . $this->pagesCount . ' * ' . $params['page'];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽