ホームページ >バックエンド開発 >PHPチュートリアル >PHP配列にエンティティクラスのエンティティを追加する
function getqos_one($ethnumber) { $qos = new qosclass(); $file="/usr/local/lte/em100cfg".$ethnumber; echo $file; $content=file_get_contents($file); $list=explode("\n",$content); $qosarry=array(); for($i=1;$i<5;$i++) { foreach($list as $line) { $line=trim($line); $eq=strpos($line,'='); if($eq>0)//该行存在‘=’号 $val=substr($line,$eq+1); if(strpos($line,"qos".$i."_en")===0) { $qos->qos=$val;//连接状态 } else if(strpos($line,"qos".$i."_cid")===0) { $qos->qos_cid=$val; } else if(strpos($line,"qos".$i."_packet_filter_identifier")===0) { $qos->qos_packet_filter_identifier=$val; } else if(strpos($line,"qos".$i."_evaluation_precedence_index")===0) { $qos->qos_evaluation_precedence_index=$val; } else if(strpos($line,"qos".$i."_source_address")===0) { $qos->qos_source_address=$val; } else if(strpos($line,"qos".$i."_subnet_mask")===0) { $qos->qos_subnet_mask=$val; } else if(strpos($line,"qos".$i."_protocol_number")===0) { $qos->qos_protocol_number=$val; } else if(strpos($line,"qos".$i."_destination_port_range")===0) { $qos->qos_destination_port_range=$val; } else if(strpos($line,"qos".$i."_source_port_range")===0) { $qos->qos_source_port_range=$val; } else if(strpos($line,"qos".$i."_direction")===0) { $qos->qos_direction=$val; } else if(strpos($line,"qos".$i."_QCI")===0) { $qos->qos_QCI=$val; } else if(strpos($line,"qos".$i."_DL_GBR")===0) { $qos->qos_DL_GBR=$val; } else if(strpos($line,"qos".$i."_UL_GBR")===0) { $qos->qos_UL_GBR=$val; } else if(strpos($line,"qos".$i."_DL_MBR")===0) { $qos->qos_DL_MBR=$val; } else if(strpos($line,"qos".$i."_UL_MBR")===0) { $qos->qos_UL_MBR=$val; } } //print_r($qos);//这里打印每一个qos都是正常的 array_unshift($qosarry,$qos); //print_r($qosarry);//这里打印qosarry里面的值 就全是空的了 注:$i=3或者4时 qos的值都是空 } print_r($qosarry); return $qosarry;class qosclass { public $qos;//使能 public $qos_cid; public $qos_packet_filter_identifier; public $qos_evaluation_precedence_index; public $qos_source_address; public $qos_subnet_mask; public $qos_protocol_number; public $qos_destination_port_range; public $qos_source_port_range; public $qos_direction; public $qos_QCI; public $qos_DL_GBR; public $qos_UL_GBR; public $qos1_DL_MBR; public $qos_UL_MBR; }
$file="/usr/local/lte/em100cfg".$ethnumber; の内容を見てください
$ の 4 つの要素の値は当然のことです。 qosarry はすべて同じです (オブジェクトは常に参照によって渡されるため)それは当然です。 $qosarryの4つの要素の値は全て同じです(オブジェクトは常に参照渡しなので)
ファイルの内容を載せておきます
qos1_en=yes
qos1_cid=2
qos1_packet_filter_identifier=1
qos1_evaluation_precedence_index=1