Как инициализировать статические переменные

Чтобы ответить на ваш вопрос, нам может потребоваться дополнительная информация. - Вы получаете сообщение об ошибке? - Где находится label1 и listbox6? - Что вызывает код? Какое событие вы пытаетесь использовать?

Dim intIndex As Integer 
Dim intCount As Integer
intcount = 0
With **Form1.**ListBox6
    For intIndex = 0 To .ListCount - 1
        If .Selected(intIndex) Then 
              intCount = intCount + 1
        End if
    Next
    **Me.**Label1.Caption = "Deelnemers: " & intCount & " op " & .ListCount
End With

Вы также можете попробовать для каждого цикла;

Dim Li as listitem
dim seleciontcount as integer
selectioncount = 0
For each li in listbox6.items
    if li.selected then
         selectioncount = selectioncount + 1
    end if
next
204
задан Brandon Wamboldt 12 May 2014 в 06:18
поделиться

3 ответа

PHP не может проанализировать нетривиальные выражения в инициализаторах.

Я предпочитаю работать вокруг этого путем добавления кода прямо после определения класса:

class Foo {
  static $bar;
}
Foo::$bar = array(…);

или

class Foo {
  private static $bar;
  static function init()
  {
    self::$bar = array(…);
  }
}
Foo::init();

PHP 5.6 может обработать некоторые выражения теперь.

/* For Abstract classes */
abstract class Foo{
    private static function bar(){
        static $bar = null;
        if ($bar == null)
            bar = array(...);
        return $bar;
    }
    /* use where necessary */
    self::bar();
}
339
ответ дан Tunasing 23 November 2019 в 04:54
поделиться

Это слишком сложно для установки в определении. Можно установить определение в NULL, хотя, и затем в конструкторе, проверьте его, и если это не было изменено - устанавливает его:

private static $dates = null;
public function __construct()
{
    if (is_null(self::$dates)) {  // OR if (!is_array(self::$date))
         self::$dates = array( /* .... */);
    }
}
10
ответ дан Alister Bulman 23 November 2019 в 04:54
поделиться

Вы не можете сделать вызовы функции в этой части кода. При создании init () методом типа, который выполняется, прежде чем любой другой код делает затем, Вы сможете заполнить переменную затем.

4
ответ дан alxp 23 November 2019 в 04:54
поделиться
Другие вопросы по тегам:

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