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

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

WBOY
WBOYオリジナル
2016-06-23 13:50:30774ブラウズ

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;	}

シフトを解除すると値が消えてしまうのはなぜですか? それとも 4 番目の値が前の値を置き換えますか? !!!!!!!!!!! 素晴らしい神様、助けてください!!!!!!!!!!!!!!!!!!!!!クラスの前の " } "

$file="/usr/local/lte/em100cfg".$ethnumber; の内容を見てください

$ の 4 つの要素の値は当然のことです。 qosarry はすべて同じです (オブジェクトは常に参照によって渡されるため)

$file="/usr/local/lte/em100cfg".$ethnumber の内容を見てください

それは当然です。 $qosarryの4つの要素の値は全て同じです(オブジェクトは常に参照渡しなので)

ファイルの内容を載せておきます

qos1_en=yes

qos1_cid=2

qos1_packet_filter_identifier=1


qos1_evaluation_precedence_index=1

qos1_source_address=192.168.1.1

qos1_subnet_mask=255.255.255.255

qos1_protocol_number=

qos1 _destination_port_range=

qos1_source_port_range=

qos1_direction=3

qos1_QCI=4

qos1_DL_GBR=1024

qos1_UL_GBR= 1024

qos1_DL_MBR=2048

qos1_UL_MBR=2048

qos1_cfg_result=



qos2_en=有効化

qos2_cid=id

qos2_packet_filter_identifier=tft ラベル

qos2_evaluation_precedence_index=tft 優先度

qos2_source_address=元の値

qos2_subnet_mask=

qos2_protocol_number=プロトコル番号

qos2_destination_port_range= 宛先ポート範囲

qos2_source_port_range=遠方ポート範囲

qos2_direction=方向

qos2_QCI=qci

qos2_DL _GBR=ダウンリンク GBR

qos2_UL_GBR=アップリンク

qos2 _DL_MBR=

qos2_UL_MBR=

qos2_cfg_result=1&0 1=成功


Qos3_en =
qos3_cid =
qos3_packet_filter_Identifier =
qos3_evaluation_preedex =
qos3_address =
qos3_su bnet_mask =
qos3_protocol_number =
qos3_destination_Port_Range =
qos3_port_raise =
qos3_direction =
qos3_qci =
L QOS3_DL_GBR =
qos3_ul_gBR =
Qos3_dl_mbr =
Qos3_ul_mbr =
qos3_cfg_result =


qos4_en =
qos4_cid =
qos4_ packet_filter_identier qos4_subnet_mask =

qos4_protocol_number =
qos4_destination_port_range =
qos4_source_port_range =

qos4_direction=

qos4_QCI=

qos4_DL_GBR=

qos4_UL_GBR=

qos4_DL_MBR=

qos4_UL_MBR=

qos 4_cfg_result=

現時点では、qosarry の値を持つ 2 つだけをループしてみました。は正常ですが、単に 3 を追加するのは間違いです

そうではありませんか?
データ内の Gos3_xxxx と gos4_xxxx は両方とも空です
したがって $qosarry も空です
array_unshift($qosarry,$qos) を array_unshift($qosarry, clone $qos); に変更します
正しいです


そうじゃないですか?
データ内の Gos3_xxxx と gos4_xxxx は両方とも空です
したがって $qosarry も空です
array_unshift($qosarry,$qos) を array_unshift($qosarry, clone $qos); に変更します
正解です

ちなみに、ありがとう、マスター。私は勉強したばかりです。ありがとう、マスター。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Apache構成svn、php次の記事:Apache構成svn、php