【问题标题】:Special characters in Php variablePhp变量中的特殊字符
【发布时间】:2020-09-09 05:41:01
【问题描述】:

在我的代码中,我将值赋给 php 变量

$firstname="shipping->firstname";

在我的订单数组中,我在 foreach 中使用以下内容来获取送货地址的名字,

$ShippingFirstName=$rvalue->$firstname;

但我遇到了错误,

ErrorException: Undefined property: stdClass::$"shipping_address->first_name"

当我回显 $firstname 变量时,我得到 shipping_address->first_name。但是在执行过程中它会被转换。请帮忙。

我试过 htmlspecialchars_decode,str_replace,json_encode(htmlspecialchars($firstname)) 但同样的错误。

谢谢, 雷卡

【问题讨论】:

  • 这种方法行不通。
  • shipping->firstname 已经保存在我数据库的数组中。我需要在订单数组循环期间映射该值。有什么解决方案吗?
  • @Rekha 您愿意分享您的数据库结构,以便我们提出比您当前更好的方法吗?
  • 在我的数据库中,我存储对象数组 [{"tagfrom":"firstname",$tagto":"shipping->firstname"},{.....}] 像这样....我需要从 tagto 中获取值并从 orders 数组中获取结果。
  • 你能做到var_dump($rvalue);然后我们可以理解你试图从中获取数据的对象的结构。目前尚不清楚它与您在数据库中提到的对象数组有何关系。

标签: php


【解决方案1】:

我不认为这是可能的,但有一些技巧。喜欢这个:

$firstname_iterators = explode('->',$firstname);

$ShippingFirstName=$rvalue->{$firstname_iterators[0]}()->{$firstname_iterators[1]};

如果你要做多个指针,那么使用这种类型


$ShippingFirstName=$rvalue;
foreach ($firstname_iterators as $key => $firstname_iterator) {
    $ShippingFirstName=$ShippingFirstName->{$firstname_iterator};
}

如果这个答案没问题,请将其标记为正确答案,以便对其他人有用。

【讨论】:

  • 是的,这工作正常。但是如果我们有两个以上的迭代器,有没有办法动态地做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-11
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 2012-05-05
相关资源
最近更新 更多