[Top]
|
Method `->=()
- Method
`->=
mixed `->=(object arg, string index, mixed val)
mixed `->=(mapping arg, string index, mixed val)
int(0..1) `->=(multiset arg, string index, int(0..1) 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 as
predef::`->=(a,"b",c) where "b" is the symbol
b 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 symbol b 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
`[]=() , lfun::`->=() , `->
|