首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对字符串变量求和

对字符串变量求和
EN

Stack Overflow用户
提问于 2013-03-30 08:01:45
回答 1查看 93关注 0票数 0

让大脑在这里冻结。这是一个针对7个字符串变量的var_dump() ...

代码语言:javascript
运行
复制
array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } }
array(1) { [0]=> object(stdClass)#445 (1) { ["option_delta"]=> string(2) "15" } }
array(1) { [0]=> object(stdClass)#639 (1) { ["option_delta"]=> string(2) "29" } }
array(1) { [0]=> object(stdClass)#448 (1) { ["option_delta"]=> string(2) "19" } }
array(1) { [0]=> object(stdClass)#447 (1) { ["option_delta"]=> string(2) "39" } }
array(1) { [0]=> object(stdClass)#446 (1) { ["option_delta"]=> string(2) "34" } }
array(1) { [0]=> object(stdClass)#449 (1) { ["option_delta"]=> string(2) "34" } }

我需要这些变量的总和,并像这样处理它:

代码语言:javascript
运行
复制
$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice;

还有这个:

代码语言:javascript
运行
复制
$totalprice = ($baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice);

还有这个:

代码语言:javascript
运行
复制
$totalprice = (int)$baseprice + (int)$procprice + (int)$memprice + (int)$graprice + (int)$hdprice + (int)$optprice + (int)$nicprice;

没有joy..。我知道我的额头会痛,但我已经准备好接受疼痛给我的解脱。

为了添加更多细节,此脚本(位于Joomla的表单/应用程序构建器Fabrik中)启动:

代码语言:javascript
运行
复制
    <?php
$typ = '{rw_inquiries___product_type_id_raw}';
$pro = '{rw_inquiries___selected_processor_raw}';
$mem = '{rw_inquiries___selected_memory_raw}';
$gra = '{rw_inquiries___selected_graphics_raw}';
$hd = '{rw_inquiries___selected_hd_raw}';
$opt = '{rw_inquiries___selected_optical_raw}';
$nic = '{rw_inquiries___selected_nic_raw}';
$db =&JFactory::getDBO();
$db->setQuery("SELECT `base_price` FROM `rw_product_types` where `id` = $typ");
$baseprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $pro");
$procprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $mem");
$memprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $gra");
$graprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $hd");
$hdprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $opt");
$optprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $nic");
$nicprice = $db->loadObjectList();
$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice;
?>

这7个字段中的每一个都是从下拉列表中选择的表单字段...

并且是用于选择类型为计算机、处理器、存储器、图形、硬盘驱动器、光盘和NIC的“配置器”的计算机组件。

"delta“选项只是基本价格的”加法器“。

希望这能有所帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-03-30 08:08:18

您需要访问返回对象内的数据,而不仅仅是对象本身。

代码语言:javascript
运行
复制
$totalprice = ((int) $baseprice[0]->base_price + (int) $procprice[0]->option_delta);

这将为您提供基本的元素添加。

这是通过观察物体推导出来的。以$baseprice为例:

代码语言:javascript
运行
复制
array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } }

您知道它是一个包含一个对象的数组,如开头的array(1)所示。因此您可以通过以下方式访问该对象:

代码语言:javascript
运行
复制
$baseprice[0]

然后你可以看到花括号之间的内容是[0] => object(...),这意味着第一项是一个对象。要获取该对象中的"base_price“元素,您可以使用->指向正确的元素:

代码语言:javascript
运行
复制
$baseprice[0]->base_price

要添加字符串,您可以将其转换为int:

代码语言:javascript
运行
复制
(int) $baseprice[0]->base_price

或者使用intval:

代码语言:javascript
运行
复制
intval($baseprice[0]->base_price)

作为int,您应该能够简单地使用+字符进行添加,如您在代码中所演示的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15713294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档