original_string: public function start_question($slot, $variant = null, $timenow = null) {
          if (is_null($variant)) {
              $variant = rand(1, $this->get_num_variants($slot));
          }
  
          $qa = $this->get_question_attempt($slot);
          $qa->start($this->preferredbehaviour, $variant, array(), $timenow);
          $this->observer->notify_attempt_modified($qa);
      }
code: public function start_question($slot, $variant = null, $timenow = null) {
          if (is_null($variant)) {
              $variant = rand(1, $this->get_num_variants($slot));
          }
  
          $qa = $this->get_question_attempt($slot);
          $qa->start($this->preferredbehaviour, $variant, array(), $timenow);
          $this->observer->notify_attempt_modified($qa);
      }
code_tokens: public function start_question ( $ slot , $ variant = null , $ timenow = null ) { if ( is_null ( $ variant ) ) { $ variant = rand ( 1 , $ this -> get_num_variants ( $ slot ) ) ; } $ qa = $ this -> get_question_attempt ( $ slot ) ; $ qa -> start ( $ this -> preferredbehaviour , $ variant , array ( ) , $ timenow ) ; $ this -> observer -> notify_attempt_modified ( $ qa ) ; }
docstring: Start the attempt at a question that has been added to this usage.
  @param int $slot the number used to identify this question within this usage.
  @param int $variant which variant of the question to use. Must be between
  1 and ->get_num_variants($slot) inclusive. If not give, a variant is
  chosen at random.
  @param int $timestamp optional, the timstamp to record for this action. Defaults to now.
docstring_tokens: Start the attempt at a question that has been added to this usage .