Reference an associative array from inside a strin

2019-05-23 05:08发布

问题:

"CREATE TABLE IF NOT EXISTS $tables[users]";

Works but..

"CREATE TABLE IF NOT EXISTS $tables['users']";

Does not.

I do not want to do this

$usersTable = $tables['users'];
"CREATE TABLE IF NOT EXISTS $usersTable";

I heard that it was considered bad practice to reference a key from an associative array without some sort of quotes around it. Is this true or is my first way of doing it preferred?

回答1:

You can do this with braces:

"CREATE TABLE IF NOT EXISTS {$tables['users']}";

Or through concatenation:

'CREATE TABLE IF NOT EXISTS ' . $tables['users'];


回答2:

You could do the folling:

$query = sprintf("CREATE TABLE IF NOT EXISTS %s", $tables['users']);

// do some other stuff


回答3:

You can use curly brackets.

"CREATE TABLE IF NOT EXISTS {$tables['users']}";