[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Синтаксис написания переменной
SergKK
Имеется файл *.tpl.html. В нем код.
 <div class="price">{$list_products[i].type}</div>

При вставке кода PHP в файл:
{php}
$t="$list_products[i].type";
{/php}
<div class="price">---$t---</div>

происходит вывод следующего текста:
---.answer---

тоесть ошибка в написании присвоения переменной, я так понимаю это из-за точки в "list_products[i].type".

Каким образом можно переменной $t присвоить значение $list_products[i].type?
Где уже только кавычки (одинарные/двойные) только не ставил...
Игорь_Vasinsky
$t=$list_products[i]."type";


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
SergKK
Цитата (Игорь_Vasinsky @ 31.05.2013 - 21:32)
$t=$list_products[i]."type";

Если так, то выводит:
---type---
sergeiss
SergKK

Цитата (SergKK @ 31.05.2013 - 21:18)
$t="$list_products[i].type";

Во-первых, тут не нужны кавычки!!! Откуда вообще люди придумывают их в подобном месте? Уже много раз видел, всё никак не пойму.

А во-вторых, про подключение пхп-файла прочитай про include/require. То же, что делаешь ты, не имеет никакого отношения к вставке файла.
Ты хотя бы код полученной страницы смотрел в браузере?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 1.06.2013 - 08:08)

Во-первых, тут не нужны кавычки!!! Откуда вообще люди придумывают их в подобном месте? Уже много раз видел, всё никак не пойму.


Тут ты не прав. Кавычки тут очень нужны. Их даже маловато будет (апострофов нехватает). Просто код нечитабельный. посему и вводит в заблуждение. По идее, если в кавычках, то лучше со скобками.

$t = "{$list_products['i']}.type";


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (twin @ 1.06.2013 - 12:58)
Тут ты не прав. Кавычки тут очень нужны.

Вот уж от кого бы это утверждение ожидать, но только не от Николая... Давай тогда уже все назначения переменных делать через заключение в двойные кавычки, да? wink.gif Чего уж мелочиться-то.

PS. Судя по описанию из начала темы, type в переменной $list_products[i].type является не символьной строкой, а элементом класса. А если это символьная строка, то автор темы еще больше недопонимает, чем я подумал. Но в любом случае двойные кавычки тут КАТЕГОРИЧЕСКИ НЕ НУЖНЫ!

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 1.06.2013 - 09:05)
Давай тогда уже все назначения переменных делать через заключение в двойные кавычки, да? wink.gif Чего уж мелочиться-то.

Причем тут все? Я сказал - именно тут)
Причем в ответ на твое категоричное:
Цитата
Во-первых, тут не нужны кавычки!!! Откуда вообще люди придумывают их в подобном месте?
В подобном месте они как раз уместны (тавтология). А стиль написания - вопрос второй. Я бы тоже написал, как Игорь. Однако навязывать в такой категоричной форме с тремя восклицательными знаками... Я бы не стал)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Кстати, причем тут элемент класса? Это шаблонизатор какой то, не ясно какой. И какой там синтаксис - тоже загадка. Так что по теме ничего не понятно, а про синтаксис написания переменных, так ты исключительно не прав. Нужны там кавычки.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Еще раз: что такое $list_products[i].type? Точный ответ знает, ествественно, только автор темы.

Но я могу предположить 2 варианта, которые совершенно разные:
1. $list_products[i].type - это элемент массива $list_products[i] (скорее всего числового или символьного), к которому приклеивается строка ".type". В этом случае имеет смысл в двойных кавычках всё написать. Хотя и не очень-то наглядно получается. Это хорошо, когда длинная-длинная строка присвоения идет - там да, можно всё внутри поместить.
2. $list_products[i].type - это элемента массива, состоящего из классов, и type - это свойство класса. Тогда помещение в двойные кавычки, в любом из показанных вариантов, вообще наглухо убивает smile.gif это свойство. Точнее говоря, нет доступа к нему. Вообще.


Поэтому я утверждаю, и всегда утверждать буду, что простое присвоение, посредством помещения данных в двойную строку двойные кавычки - вселенское зло, которое бъёт в первую очередь по самому же программисту, который так пишет. ЧТО МЫ И НАБЛЮДАЕМ В ДАННОЙ ТЕМЕ. Как раз живой пример проявления этого "вселенского зла". Когда элементарное присвоение вызывает проблему.

PS. Для первого из указанных мной вариантов более нагляден вариант присовения, что показал Игорь, для второго варианта двойные кавычки вообще не нужны.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
HErATuB
В php же свойства через "->" и "::".
sergeiss
Цитата (HErATuB @ 1.06.2013 - 13:38)
В php же свойства через "->" и "::".

Блин.... Да, активный труд в деревне действует на мозг не в лучшую сторону wink.gif Вот еще одно подтвержение моих слов о том, что не надо использовать двойные кавычки там, где они реально не нужны. Чтобы не "путаться в 3-х соснах".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
twin
Цитата (sergeiss @ 1.06.2013 - 09:33)
Поэтому я утверждаю, и всегда утверждать буду, что простое присвоение, посредством помещения данных в двойную строку двойные кавычки - вселенское зло, которое бъёт в первую очередь по самому же программисту, который так пишет. ЧТО МЫ И НАБЛЮДАЕМ В ДАННОЙ ТЕМЕ. Как раз живой пример проявления этого "вселенского зла". Когда элементарное присвоение вызывает проблему.

PS. Для первого из указанных мной вариантов более нагляден вариант присовения, что показал Игорь, для второго варианта двойные кавычки вообще не нужны.

Я бы согласился с тобой, если бы ты показал бы свой вариант. Но ты выдернул строку из контекста
Цитата
$t="$list_products[i].type";

и заявил, что кавычки там не нужны. Другими словами ты написал, что нужно делать так:
Цитата
$t=$list_products[i].type;

А это, согласись, заявление в корне неверное. А все остальное - домыслы.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.