Я создаю класс 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
Все, что вам нужно сделать, это использовать предварительное увеличение для достижения желаемого результата. Это потому, что вы используете ++
с эхом. 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
Других решений пока нет …