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'])

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

Почему такое может происходить?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 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'];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 21:59
15000 руб./за проект
02 мая 2024, в 21:54
1000 руб./в час
02 мая 2024, в 21:27
300000 руб./за проект