Technically speaking, should magic __set return?

Just a question that passed into my head - is the magic __set function supposed to return anything? Currently I don’t - and the examples I’ve always seen don’t. I throw an exception when the user tries an illegal set.

Shouldn’t the setter return the value you assign, so you can do stuff like


while ($row = mysqli_fetch_assoc($res)) { ... }

i.e.


function __set($name, $value) {
  // blah
  return $value;
}

?

Conceptually speaking it should not return anything (other than $this, if you’re into chaining) since it’s a ‘setter’