Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:每次运行函数时递增变量_Php_Laravel_Class - Fatal编程技术网

PHP:每次运行函数时递增变量

PHP:每次运行函数时递增变量,php,laravel,class,Php,Laravel,Class,我的Helper类中有一个函数,它应该在每次调用该函数时递增变量 这是我的密码: <?php class Helper { public static $count; public static function voiceHelper($questionArray) { $count = self::$count; // $count = 0; if(count($questionArray) >= $count) {

我的Helper类中有一个函数,它应该在每次调用该函数时递增变量

这是我的密码:

<?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;
    }
   }

}
我希望每次调用函数时count变量都会递增,但它仍然保持为1。

请尝试:

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;
    }
   }

}
看起来您只是在增加$count,而没有将其添加到static count属性。因此,您将始终得到1。而是实际增加静态计数属性

试试看:

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;
    }
   }

}
看起来您只是在增加$count,而没有将其添加到static count属性。因此,您将始终得到1。而是实际增加静态计数属性

您必须使用self::$counteverywhere:

<?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;
            }
        }

    }
输出:-和

注意:-您没有将$count添加到static count属性中,而是增加了$count。这就是为什么你总是得到1。

你必须使用self::$counteverywhere:

<?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;
            }
        }

    }
输出:-和


注意:-您没有将$count添加到static count属性中,而是增加了$count。这就是为什么你总是得到1。

@Joseph\u J是的。例如,变量questionArray长度为3,即使它通过了条件,它仍然不会增加。fix$count==0;到$count=0;真的不确定这个设计,它看起来像是在一系列问题中迭代。如果是,则创建一个包含问题列表的对象,然后创建下一个方法。@Joseph_J Yes。例如,变量questionArray长度为3,即使它通过了条件,它仍然不会增加。fix$count==0;到$count=0;真的不确定这个设计,它看起来像是在一系列问题中迭代。如果是,则创建一个包含问题列表的对象,然后创建下一个方法。