Следующий код
<?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"}
Я хочу знать возникновение этого и в этом случае, что можно сделать, чтобы предотвратить эту ошибку.
array(name => value)
не является допустимым синтаксисом, php не теперь, что name
является. Вам нужны кавычки вокруг ключей массива.
использование array("domain" => $email_domain, ...
и т.п.
Вы должны использовать кавычки вокруг ключей в массиве, например так:
$call = array('domain'=>$email_domain, 'email'=>$email_user, 'password'=>$email_pass, 'quota'=>$email_quota);
Если вы хотите использовать литералы в качестве ключей массива, вам нужно заключить их в двойные или одинарные кавычки:
$call = array('domain'=>$email_domain,
'email'=>$email_user,
'password'=>$email_pass,
'quota'=>$email_quota);