Skip to content
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...
1 parent dbee98b commit 7d9ce8864a30b6f8a0489f5e7f50e04db06797a5 @timhunt timhunt committed Jan 7, 2013
Showing with 4 additions and 13 deletions.
  1. +1 −1 question/type/edit_question_form.php
  2. +3 −12 question/type/questiontypebase.php
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();

0 comments on commit 7d9ce88

Please sign in to comment.
Something went wrong with that request. Please try again.