对象操作符的数组语法问题


Array Syntax Issues with object operator

$transaction->setFields(
    array(
    'first_name' => $_POST['x_first_name'],
    'last_name' => $_POST['x_last_name'],
    )
mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
    VALUES ("$transaction->setFields['x_first_name']",'last_name')");

有问题从这个数组调用,必须是语法,但我找不到一个好的参考。

您的数组缺少);,并且在最后一个元素上有一个尾随逗号。另外,你在查询中的报价是错误的。试试这个:

$transaction -> setFields(array('first_name' => $_POST['x_first_name'], 'last_name' => $_POST['x_last_name']));
mysql_query("INSERT INTO table_one (`first_name`, `last_name`) VALUES ('" . $transaction -> setFields['x_first_name'] . "','last_name')");

无论是否为数组,当你从双引号内访问变量时,总是使用大括号。

mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
VALUES ("{$array['x_first_name']}",'{$array['last_name']}')");

如果您可以在本页搜索"复杂(花括号)语法",可以找到更多信息:http://php.net/manual/en/language.types.string.php

很高兴看到$transaction的声明。也许使用SPL数组/迭代器之类的?假设没有其他getter可能有getFields()?

$fields = $transaction->getFields();

或者直接使用传递给setter的数组。无论如何,使用[]

mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
VALUES ("{$fields['x_first_name']}",'last_name')");