Задать вопрос
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'])

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

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

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

Похожие вопросы