简体   繁体   中英

PHP: Increment the variable each time you run the function

I have a function in my Helper Class that should increment the variable each time the function is called.

Here is my code:

<?php

class Helper 
{

  public static $count;

  public static function voiceHelper($questionArray)
  {
    $count = self::$count;
    // $count = 0;
    if(count($questionArray) >= $count)
    {
        $count++;
        return $count;

    } else if($count > count($questionArray))
    {
        $count == 0;
        return $count;
    }
   }

}

I expect that the count variable will increment each time the function is called but it still remains 1.

Try:

class Helper 
{

  public static $count;

  public static function voiceHelper($questionArray)
  {

    // $count = 0;
    if(count($questionArray) >= $count)
    {
        self::$count++;
        return self::$count;

    } else if($count > count($questionArray))
    {
        self::$count = 0;
        return self::$count;
    }
   }

}

Looks like you are just incrementing the $count without adding it to the static count property. Therefore you will always get 1. Instead actually increment the static count property.

You have to use self::$count everywhere:

<?php

    class Helper 
    {

        public static $count;

        public static function voiceHelper($questionArray)
        {

            if(count($questionArray) >= self::$count)
            {
                self::$count++;
                return self::$count;

            }

            if(self::$count > count($questionArray))
            {
                self::$count = 0; // change == to = as it's assignment
                return self::$count;
            }
        }

    }

Output:- https://3v4l.org/EaEqA And https://3v4l.org/pto7m

Note:- You did increment in the $count without adding it to the static count property. That's why you always got 1.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM