如何将字符串附加到对象属性?

时间:2018-07-31 19:38:41

标签: php

我正在尝试将客户计费期内的天数发送回我的前端。我查询了这个数字,但想在其后附加" Days"。到目前为止,我有:

<?php
require "../../inc/dbinfo.inc";

$projectnum =$_POST['projectnum'];

$sql = $conn->prepare("SELECT (SELECT TermsofPayment FROM tblCustomers WHERE CUSTOMERID = ProjectCustomer) AS NetTerms FROM tblProjects WHERE PROJECTNOID = ?");

if($sql){
  $sql->bind_param("i", $projectnum);
  $sql->execute();
  $hold = $sql->get_result();
  $obj = $hold->fetch_assoc();
  $addOn = " Days";
  $obj->NetTerms = $obj->{'NetTerms'. $addOn};

  echo json_encode($obj);
}
$sql->close();
exit();

?>

经过反复试验,似乎倒数第二行对结果没有影响。我浏览了整个网络,没有找到任何解决方案(也许我的搜索中没有正确的关键字)。

当前响应:{"NetTerms":30}

所需响应:{"NetTerms":30 Days}

1 个答案:

答案 0 :(得分:2)

您在那里/有两个问题:

首先,您想将一个变量连接到另一个变量,并且语法错误。

$addOn = " Days";
$obj->NetTerms = $obj->{'NetTerms' .$addOn};
// this would try to get a value of `$obj->NetTerms Days`, which doesn't exist.

应该是

$obj->NetTerms = $obj->NetTerms . $addOn;
// or 
$obj->NetTerms .= $addOn;

所有这些都引发了错误,因为$obj是一个数组(从fetch_assoc()返回),而不是对象。 因此,将其视为一个数组,它应该可以工作:

$obj['NetTerms'] = $obj['NetTerms'] . $addon;