Method `->=()
- Method `->=
mixed `->=(object arg, string index, mixed val)
mixed `->=(mapping arg, string index, mixed val)
bool `->=(multiset arg, string index, bool val)- Description
Arrow index assignment.
Every lvalue expression with the
->
operator becomes a call to this function, i.e.a->b=c
is the same aspredef::`->=(a,"b",c)
where"b"
is the symbolb
in string form.This function behaves like `[]=, except that the index is passed literally as a string instead of being evaluated.
If arg is an object that implements lfun::`->=(), that function will be called with index and val as the arguments.
arg can have any of the following types:object The non-protected (ie public) variable named index will be looked up in arg, and assigned val.
array|mapping Index index in arg will be assigned val.
multiset If val is
0
(zero), one occurrance of index in arg will be removed. Otherwise index will be added to arg if it is not already there.
- Returns
val will be returned.
- Note
In an expression
a->b=c
, the symbolb
can be any token that matches the identifier syntax - keywords are disregarded in that context.- Note
An arrow indexing expression in a non-lvalue context, i.e. where the index is being queried instead of assigned, uses `-> instead of this function.
- See also