Originally published on php-to-js.learnio.dev — part of the PHP to JavaScript course. View this lesson on the original site.
Objects hold keyed data — PHP associative arrays, different syntax
When you reach for ['key' => 'value'] in PHP, you usually want a JavaScript object. Property access uses dots for fixed keys and brackets for dynamic keys.
PHP habit: associative array
<?php
$user = [
'id' => 1,
'name' => 'Alice',
'role' => 'admin',
];
echo $user['name'];
$user['active'] = true;
$key = 'role';
echo $user[$key];
foreach ($user as $field => $value) {
echo "$field: $value\n";
}
if (array_key_exists('email', $user)) {
echo "has email\n";
}
JavaScript equivalent
const user = {
id: 1,
name: 'Alice',
role: 'admin',
};
console.log(user.name);
user.active = true;
const key = 'role';
console.log(user[key]);
for (const [field, value] of Object.entries(user)) {
console.log(`${field}: ${value}`);
}
if ('email' in user) {
console.log('has email');
}
| PHP | JavaScript | Notes |
|---|---|---|
['k' => $v] |
{ k: v } |
Object literal |
$obj['name'] |
obj.name or obj['name'] |
Dot when key is a valid identifier |
$obj[$key] |
obj[key] |
Brackets for dynamic keys |
foreach ($obj as $k => $v) |
Object.entries(obj) |
Iterate key-value pairs |
array_key_exists('k', $obj) |
'k' in obj |
Key presence |
isset($obj['k']) |
obj.k !== undefined |
Value may still be undefined |
Arrays vs objects — do not mix them up
<?php
$list = [1, 2, 3];
$map = ['a' => 1, 'b' => 2];
// both are array type in PHP
const list = [1, 2, 3];
const map = { a: 1, b: 2 };
console.log(Array.isArray(list)); // true
console.log(Array.isArray(map)); // false
Use arrays for ordered lists. Use objects for records with named fields (user, config, API payload).
Shorthand when variable names match keys
const name = 'Alice';
const role = 'admin';
const user = { name, role }; // same as { name: name, role: role }
PHP 8.1+ has similar shorthand in array literals: ['name' => $name].
Try it
Use the amber Try it panel below. Click Run.
const product = { sku: 'BOOK-01', title: 'Learn JS', price: 24.99 };
product.inStock = true;
const field = 'title';
console.log(product[field]);
for (const [key, value] of Object.entries(product)) {
console.log(key, '=', value);
}
Same data you would pass as a PHP associative array to a view or JSON encoder — different syntax, same shape.
From PHP to JavaScript — JavaScript Syntax Foundations for PHP Devs