php echo question - PullRequest
       6

php echo question

0 голосов
/ 18 марта 2011
$this->get_name = mysqli_fetch_assoc(mysqli_query($this->link,"SELECT complete_name FROM student WHERE email='$this->email'"));

mysqli_query($this->link, $this->drop_query) or die(mysql_error());

echo $this->get_name['complete_name'].  " has been marked as Left!";

когда я запускаю это, я получаю следующее:

«Джон был помечен как левый!»

, но когда я бегу

echo ".$this->get_name['complete_name'] has been marked as Left!";

iполучите это:

"Массив ['имя_файла'] помечен как Левый!"

Разве они не должны печатать одинаковые вещи?

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

PHP: синтаксический анализатор не знает, где заканчивается переменная во втором случае, используйте {} для инкапсуляции переменной в строке

echo "{$this->get_name['complete_name']} has been marked as Left!";
1 голос
/ 18 марта 2011

Если вы хотите получить смещение массива, используйте:

{$this->get_name['complete_name']}

Использование скобок говорит PHP, что следует ожидать, что все содержимое будет использоваться как переменная, если это возможно.

См. Разбор строк PHP для более подробной информации.Как часть их примеров у них есть этот пример:

// Works, quoted keys only work using the curly brace syntax
echo "This works: {$arr['key']}";
0 голосов
/ 18 марта 2011

Всякий раз, когда я повторяю что-то более сложное, чем что-то вроде $complete_name, я не включаю его в кавычки:

echo $this->get_name['complete_name'].' has been marked as Left!';

Я нахожу легкость чтения всей цитаты, поскольку предложение в любом случае теряется при работе с объектами, массивами и т. Д. Поэтому, если вы хотите легко прочитать строку в кавычках, я мог бы предложить использовать:

$complete_name = $this->get_name['complete_name'];   # deal with the dirty stuff here 

echo "$complete_name has been marked as left!";      # so this is much easier to read
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...