Nano Hash - криптовалюты, майнинг, программирование

Доступ к объекту PHP stdClass в Javascript/Smarty

У меня есть объект stclass, который я инициализирую в PHP-коде. Объект возвращается

object(stdClass)[238]
  public '0' => string 'Jun 20, 2012 03:02 PM' (length=21)
  public '1' => string 'Jun 20, 2012 03:26 PM' (length=21)
  public '2' => string 'Jun 21, 2012 01:12 PM' (length=21)

при выполнении var_dum($myObjectName)

Я передаю это в умный шаблон, где мне нужно получить доступ к значениям объекта stdClass по индексу [i] на основе переменной javascript.

Я пробовал несколько из них:

{/literal} {$myObjectName}{literal} 
{/literal} {$myObjectName.0}{literal} 
{/literal} {$myObjectName.'0'}{literal} 
{/literal} {$myObjectName.'myLocalJSVariable'}{literal} 

но я не могу получить значение объекта по определенному индексу


Ответы:


1

Могу ли я предложить вам использовать json_encode(), чтобы сбросить ваши данные в json, сохранить их во что-то доступное для javascript, а затем получить доступ к вашим данным из javascript?

{$myObjectName->javaScriptVariable} звучит так же, как если бы вы пытались получить доступ к некоторым данным клиента на сервере или некоторым данным сервера на клиенте, что невозможно, если вы не предоставили данные.

22.06.2012

2

Вы пробовали {$myObjectName->0}?

Если вы хотите использовать его так же, как массивы, вы должны передать Smarty версию массива объекта:

$smarty->assign('myObjectName', get_object_vars($obj));

Метод get_object_vars() возвращает именованный массив всех свойств объекта.

21.06.2012
  • Какое решение? Первый, используя сам объект, или второй, передавая его как массив? 22.06.2012
  • первый... мне нужно использовать значение myObjectName->3 в файле шаблона. число 3 - это переменная javascript, которую я назначу коду, так как мой код для доступа к члену объекта становится таким: {$myObjectName->javaScriptVariable} 22.06.2012
  • Что выводит var_dump($yourObject) из PHP? 22.06.2012
  • object(stdClass)[238] public '0' => строка '20 июня 2012 г. 15:02' (длина = 21) public '1' => строка '20 июня 2012 г. 15:26 PM' (длина = 21 ) public '2' => строка '21 июня 2012 г., 13:12' (длина = 21) public '3' => строка '21 июня 2012 г., 13:25' (длина = 21) 22.06.2012
  • Хорошо, вы используете Smarty2 или Smarty3? 22.06.2012
  • Я просто хотел попробовать это сам, чтобы помочь вам, но я не могу создать такой объект. В PHP имена переменных и свойств не могут начинаться с цифры. 22.06.2012
  • позвольте мне дать вам еще немного кода... который может помочь вам в том, что я делаю foreach ($variables as $var) { $myClassObject->$$var = $this->functionName($var1, $var2); } теперь здесь $variables — это массив с var_dump как массив 0 => int 0 1 => int 1 2 => int 2 3 => int 3 ‹/pre›‹/code› 22.06.2012

  • 3

    Почему бы вам не передать smarty ссылку на ваш объект?

    $smarty->assign('myObjectName', &$obj);
    

    Затем в smarty вы можете использовать синтаксис {$myObjectName->whatever}...

    22.06.2012
  • Если вы не используете PHP4, вам не нужно передавать объекты по ссылке. 22.06.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..