PHP array 中累加实体类的实体

WBOY
Freigeben: 2016-06-13 12:06:00
Original
1160 Leute haben es durchsucht

PHP array 中追加实体类的实体

本帖最后由 xuzuning 于 2014-09-01 10:34:42 编辑
function getqos_one($ethnumber)<br />	{<br />		$qos = new qosclass();<br />		$file="/usr/local/lte/em100cfg".$ethnumber;<br />		echo $file;<br />		$content=file_get_contents($file);<br />		$list=explode("\n",$content);<br />		$qosarry=array();<br />		for($i=1;$i<5;$i++)<br />		{<br />		foreach($list as $line)<br />		{<br />			$line=trim($line);<br />			$eq=strpos($line,'=');<br /><br />			if($eq>0)//该行存在‘=’号<br />				$val=substr($line,$eq+1);<br />			<br />			if(strpos($line,"qos".$i."_en")===0)<br />			{<br />				$qos->qos=$val;//连接状态<br />			}<br />			else if(strpos($line,"qos".$i."_cid")===0)<br />			{<br />				$qos->qos_cid=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_packet_filter_identifier")===0)<br />			{<br />				$qos->qos_packet_filter_identifier=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_evaluation_precedence_index")===0)<br />			{<br />				$qos->qos_evaluation_precedence_index=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_source_address")===0)<br />			{<br />				$qos->qos_source_address=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_subnet_mask")===0)<br />			{<br />				$qos->qos_subnet_mask=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_protocol_number")===0)<br />			{<br />				$qos->qos_protocol_number=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_destination_port_range")===0)<br />			{<br />				$qos->qos_destination_port_range=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_source_port_range")===0)<br />			{<br />				$qos->qos_source_port_range=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_direction")===0)<br />			{<br />				$qos->qos_direction=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_QCI")===0)<br />			{<br />				$qos->qos_QCI=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_DL_GBR")===0)<br />			{<br />				$qos->qos_DL_GBR=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_UL_GBR")===0)<br />			{<br />				$qos->qos_UL_GBR=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_DL_MBR")===0)<br />			{<br />				$qos->qos_DL_MBR=$val;<br />			}<br />			else if(strpos($line,"qos".$i."_UL_MBR")===0)<br />			{<br />				$qos->qos_UL_MBR=$val;<br />			}<br />			<br />		}<br />		//print_r($qos);//这里打印每一个qos都是正常的<br />		array_unshift($qosarry,$qos);<br />		//print_r($qosarry);//这里打印qosarry里面的值 就全是空的了 注:$i=3或者4时 qos的值都是空<br />		}<br />		print_r($qosarry);<br />		return $qosarry;<br /><br />class qosclass<br />	{<br /><br />		public $qos;//使能<br /><br />		public $qos_cid;<br /><br />		public $qos_packet_filter_identifier;<br /><br />		public $qos_evaluation_precedence_index;<br /><br />		public $qos_source_address;<br /><br />		public $qos_subnet_mask;<br /><br />		public $qos_protocol_number;<br /><br />		public $qos_destination_port_range;<br /><br />		public $qos_source_port_range;<br /><br />		public $qos_direction;<br /><br />		public $qos_QCI;<br /><br />		public $qos_DL_GBR;<br /><br />		public $qos_UL_GBR;<br /><br />		public $qos1_DL_MBR;<br /><br />		public $qos_UL_MBR;<br /><br /><br />	}<br />
Nach dem Login kopieren

为何在unshift之后 值就没了呢?还是第四个的值取代了前面几个的值?
------解决方案--------------------
这不就对了吗?
数据中 gos3_xxxx、gos4_xxxx 都是空的
所以 $qosarry 中也就空了

把 array_unshift($qosarry,$qos);
改成 array_unshift($qosarry, clone $qos);
就正确了
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage