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

Php 如何将字符串附加到对象属性?,php,Php,我正在尝试向我的前端发送回复,回复内容为客户计费周期内的天数。我查询这个号码,但想在后面加上“天”。到目前为止,我已经: <?php require "../../inc/dbinfo.inc"; $projectnum =$_POST['projectnum']; $sql = $conn->prepare("SELECT (SELECT TermsofPayment FROM tblCustomers WHERE CUSTOMERID = ProjectCustomer) A

我正在尝试向我的前端发送回复,回复内容为客户计费周期内的天数。我查询这个号码,但想在后面加上
“天”
。到目前为止,我已经:

<?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天}

您遇到了两个问题:

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

$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\u assoc()
的返回),而不是一个对象。 因此,将其视为一个数组,它应该可以工作:

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

你有两个问题:

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

$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\u assoc()
的返回),而不是一个对象。 因此,将其视为一个数组,它应该可以工作:

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

您正在尝试访问名为
NetTermsDays
的属性。您可能只需要
$obj->NetTerms$加载项
?看起来,
$addOn
实际上是空的,即使您显示它是在第一个代码块中定义的。否则,我认为您会将
$obj->NetTerms
设置为null,因为
$obj{'NetTerms Days'}
不存在。难道
fetch_assoc()
不返回数组而不是对象吗??所以它将是
$obj['NetTerms']。=$addon
$obj['NetTerms']=$obj['NetTerms']$插件旁注:请不要更改评论信息中问题的关键代码部分。现在90%的评论不再有意义了。下次请确保您启用了
error\u reporting()!您正在尝试访问名为
NetTermsDays
的属性。您可能只需要
$obj->NetTerms$加载项
?看起来,
$addOn
实际上是空的,即使您显示它是在第一个代码块中定义的。否则,我认为您会将
$obj->NetTerms
设置为null,因为
$obj{'NetTerms Days'}
不存在。难道
fetch_assoc()
不返回数组而不是对象吗??所以它将是
$obj['NetTerms']。=$addon
$obj['NetTerms']=$obj['NetTerms']$插件旁注:请不要更改评论信息中问题的关键代码部分。现在90%的评论不再有意义了。下次请确保您启用了
error\u reporting()!