Предупреждения — Использование неопределенной постоянной ошибки в переполнении стека

Следующий код

<?php
$email_domain = "[email protected]";
$email_user = "Roshan";
$email_pass = "admin";
$email_quota = "200";
$call = array(domain=>$email_domain, email=>$email_user, password=>$email_pass, quota=>$email_quota);

echo json_encode($call);
?>

генерируется следующая ошибка:

Notice: Use of undefined constant domain - assumed 'domain' in C:\xampp\htdocs\test2.php on line 7

Notice: Use of undefined constant email - assumed 'email' in C:\xampp\htdocs\test2.php on line 7

Notice: Use of undefined constant password - assumed 'password' in C:\xampp\htdocs\test2.php on line 7

Notice: Use of undefined constant quota - assumed 'quota' in C:\xampp\htdocs\test2.php on line 7
{"domain":"[email protected]","email":"Roshan","password":"admin","quota":"200"}

Я хочу знать возникновение этого и в этом случае, что можно сделать, чтобы предотвратить эту ошибку.

-3

Решение

array(name => value) не является допустимым синтаксисом, php не теперь, что name является. Вам нужны кавычки вокруг ключей массива.

использование array("domain" => $email_domain, ... и т.п.

2

Другие решения

Вы должны использовать кавычки вокруг ключей в массиве, например так:

$call = array('domain'=>$email_domain, 'email'=>$email_user, 'password'=>$email_pass, 'quota'=>$email_quota);
1

Если вы хотите использовать литералы в качестве ключей массива, вам нужно заключить их в двойные или одинарные кавычки:

$call = array('domain'=>$email_domain,
'email'=>$email_user,
'password'=>$email_pass,
'quota'=>$email_quota);
1
По вопросам рекламы [email protected]