Выход меньше ожидаемого после использования инкрементного оператора

Я создаю класс abc и статическую переменную и две функции, имеющие имя setsize, в котором я устанавливаю значение, и другую функцию, я создаю getsize для получения значения в функции getsize. Я увеличиваю значение, когда вызываю функцию, ее вывод должен быть 101, но выводится почему 100

 <?php

Class abc {   // create a class
public static $a;

static function getsize() {  make a function
return self::$a++;   //increment a static variable
}
static function setsize($n) {
self::$a=$n;  // set size of static variable
}
}
abc::setsize(100);  // set value of static variable
echo abc::getsize();  //call getsize function output is 100 but it must be
101

-1

Решение

Все, что вам нужно сделать, это использовать предварительное увеличение для достижения желаемого результата. Это потому, что вы используете ++ с эхом. http://php.net/manual/en/language.operators.increment.php

Код: (демонстрация)

Class abc{   // create a class
public static $a;

static function getsize() {
return ++self::$a;   //increment a static variable
}
static function setsize($n) {
self::$a = $n;  // set size of static variable
}
}
abc::setsize(100);  // set value of static variable
echo abc::getsize();  //call getsize function output is 100 but it must be 101
// output: 101

В более простой демонстрации 🙁демонстрация)

$hundy = 100;
echo $hundy++;
echo "\n$hundy";
echo "\n---\n";
$hundy = 100;
echo ++$hundy;

Выход:

100
101
---
101
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]