I am trying to create an object in PHP and add a key value pair consisting of an email address for the key and an empty array for the value. It is not working. Here is what I’ve tried.
$user[0]['email'] = 'abc@gmail.com'; $obj = new stdClass(); $obj[[$user[0]['email']]=[];
I thought this would produce $obj = {abc@gmail.com:[]}
but it appears blank
Advertisement
Answer
You have a Parse error: syntax error here:
$obj[[$user[0]['email']]=[]; ^
However, since it’s an object and not an array, use a property. Curly braces {}
needed since it’s not a valid variable name (not recommended):
$user[0]['email'] = 'abc@gmail.com'; $obj = new stdClass(); $obj->{$user[0]['email']}=[];
Or create an array and cast it to an object:
$user[0]['email'] = 'abc@gmail.com'; (object)$obj[$user[0]['email']]=[];
Both yield:
stdClass Object ( [abc@gmail.com] => Array ( ) )