在 php 的变量变量中使用 str_replace

Using str_replace in variable variable in php

提问人:Jerokdeep 提问时间:4/4/2018 更新时间:4/13/2018 访问量:569

问:

我有一个suitecrm实现,我想在发票中用文字打印一个数字。该数字采用货币格式,因此带有逗号 (,)。当我尝试用空字符串替换逗号时,它根本不起作用。事实上,在下面的几行中,根本没有字符被替换。

//Value here is 10,720.00
$number = "\$" . $variableName . "_total_amount";
$newValueTemp = str_replace(",","",$number);
//Its still 10,720.00 after this

$newValueTemp = str_replace("0","",$number);
//Its still 10,720.00 after this. So basically nothing is getting replace. 

这与变量的变量有关吗?

php str-replace suitecrm 变量

评论

1赞 Niet the Dark Absol 4/4/2018
var_dump($number)并看到它不是你想象的那样......
0赞 brombeer 4/4/2018
你有没有确定它真的是 10,720.00?echo$number
0赞 Jerokdeep 4/4/2018
我们做到了。我还有另外两个同事也对此感到困惑。当我们打印它时,呼应它。它一直给出 10,720.00。
0赞 parthi 4/4/2018
实际上你需要什么输出
0赞 Jerokdeep 4/4/2018
它应该是 10720.00。我不明白为什么人们如此傲慢并对此投反对票。我从过去 2 天开始就遇到了这个问题。在用尽了我所有的选择之后,我来到了这里。严重令人沮丧

答:

0赞 brombeer 4/4/2018 #1

您错误地使用了变量:

$number = "\$" . $variableName . "_total_amount";

会让你成为一个字符串.要使其成为变量,您应该:$number"$XYZ_total_amount"

$number = $variableName."_total_amount";

然后用于获取值。$$number

评论

0赞 Jerokdeep 4/4/2018
试过这个。这将变量名称打印为“$aos_invoices_total_amount”
0赞 Jerokdeep 4/4/2018
我认为这就是问题所在。这是在suitecrm zend框架中一个名为generatePdf.php的文件中。那里根本不起作用
0赞 brombeer 4/4/2018
这是非常“基本”的 PHP,不确定 suitecrm 如何/是否会干扰它。听到这个消息很伤心。对不起,那我就没有进一步的帮助了
0赞 Jerokdeep 4/4/2018
无论如何,谢谢你。Suitecrm社区也没有太大的帮助。
0赞 brombeer 4/4/2018
祝你好运
0赞 Star 4/13/2018 #2

你对货币模块有想法吗?如果没有,请阅读以下内容,希望符合 Suite/SugarCRM 标准的内容会给您带来更好的结果:

检查路径中的 bean 文件:modules/Currencies/Currency.php

查找函数并研究其代码。它将让您了解货币格式在SuiteCRM中的工作原理。unformat_number

如果您想在代码中使用“货币”函数,那么以下代码将对您有所帮助:

<?php 
require_once "modules/Currencies/Currency.php"; 
$unformated_number = format_number($number);