ホームページ  >  記事  >  バックエンド開発  >  エンティティクラスのエンティティをPHP配列に蓄積する

エンティティクラスのエンティティをPHP配列に蓄積する

WBOY
WBOYオリジナル
2016-06-13 12:06:001153ブラウズ

PHP 配列にエンティティ クラスのエンティティを追加する

この投稿は 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 />

シフト解除後に値が失われるのはなぜですか? 4 番目の値は前の値を置き換えますか?
-----解決策---------
は違います'そうじゃないですか?
データ内の Gos3_xxxx、gos4_xxxx は両方とも空です
したがって $qosarry も空です

array_unshift($qosarry,$qos);
を array_unshift($qosarry, clone $qos) に変更します;
は正しいです
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。