If there is no such variable, or if it is not visible outside the object, 0 is returned.
If the argument is an integer, and the variable is inherited and private in the inherited object (i.e. hidden), then a privilege violation will occur.
int base;
int var;
symbol_variable("var") -> #'<this_object>->var
symbol_variable(0) -> #'<this_object>->base