Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MDL-37374 questions: use property_exists rather than isset

$a->field = null; isset($a->field) returns false, which is typical PHP.
I also improve the error handling a bit.
  • Loading branch information...
commit 8d54191d7afc22d3bc3e15f15ca5c1804f6835d2 1 parent 2e5d013
@timhunt timhunt authored
View
2  question/type/edit_question_form.php
@@ -481,7 +481,7 @@ public function set_data($question) {
if (is_array($extraquestionfields) && !empty($question->options)) {
array_shift($extraquestionfields);
foreach ($extraquestionfields as $field) {
- if (isset($question->options->$field)) {
+ if (property_exists($question->options->$field)) {
$question->$field = $question->options->$field;
}
}
View
15 question/type/questiontypebase.php
@@ -454,21 +454,12 @@ public function save_question_options($question) {
$options->$questionidcolname = $question->id;
}
foreach ($extraquestionfields as $field) {
- if (!isset($question->$field)) {
- $result = new stdClass();
- $result->error = "No data for field $field when saving " .
- $this->name() . ' question id ' . $question->id;
- return $result;
+ if (property_exists($question->$field)) {
+ $options->$field = $question->$field;
}
- $options->$field = $question->$field;
}
- if (!$DB->{$function}($question_extension_table, $options)) {
- $result = new stdClass();
- $result->error = 'Could not save question options for ' .
- $this->name() . ' question id ' . $question->id;
- return $result;
- }
+ $DB->{$function}($question_extension_table, $options);
}
$extraanswerfields = $this->extra_answer_fields();
Please sign in to comment.
Something went wrong with that request. Please try again.