我正在寻找同一产品的多个变体的页面。我正在使用if语句来检查是否有一些变化要显示。但是,正如您所看到的,我对if语句重复几乎相同的事情。如何将多个if语句自动化为一个?
这样的事情:
if($s->??? !=0 ) {
product->??? = $s->???;
}
我的代码:
while ($s = $subProduct->fetch(PDO::FETCH_OBJ)) {
$product->variant = $s->variant;
if ($s->price != 0) {
$product->price = $s->price;
}
if ($s->battery != 0) {
$product->battery = $s->battery;
}
if ($s->topspeed != 0) {
$product->topspeed = $s->topspeed;
}
if ($s->range != 0) {
$product->range = $s->range;
}
}
答案 0 :(得分:1)
您可以使用get_object_vars。
$vars = get_object_vars($s);
foreach($vars as $key => $value) {
if($s->$key != 0)
$product->$key = $s->$key;
}
答案 1 :(得分:0)
我确信有很多选择,但也许可以给你一个想法:
$optionalParams = array("range","topspeed","price","battery");
foreach($optionalParams as $option) {
if(isset($s->$option) && $s->$option != 0)
$product->$option = $s->$option;
}
答案 2 :(得分:0)
从PHP 5开始,您只需使用object iteration
即可只是这样做
<?php
$v= new \stdClass();
$v->name = "john";
$v->age = 30;
foreach ($v as $key => $prop){
if ($prop){
$v->$key = "changed";
}
}
var_dump($v);
exit;
完整代码示例
$v
现在,所有{{1}}属性都已更改&#34;
将代码视为演示(https://eval.in/833456)