# Method `[]=()

Method `[]=

  `mixed `[]=(object arg, mixed index, mixed val)`
  `mixed `[]=(object arg, string index, mixed val)`
  `mixed `[]=(array arg, int index, mixed val)`
  `mixed `[]=(mapping arg, mixed index, mixed val)`
  `bool `[]=(multiset arg, mixed index, bool val)`

Description

  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)`.

  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

  An 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::`[]=(), `[]