1.类中变量直接调用和$this->调用不同
2.清空数组array方法:
A unset() 释放资源,这个array变量就没有了
B $arr=array() 重新赋值,将原有的变量赋值给一个新的空数组
线性表类--最终代码
1 <?php 2 //线性表类 3 class MyList{ 4 5 //变量:数组、长度 6 private $arr; 7 private $length; 8 9 //构造函数 10 function __construct() 11 { 12 $this->arr=array(); 13 $this->length=0; 14 echo "初始化:"; 15 //echo $arr; 16 } 17 18 //析构函数 19 function __destruct() 20 { 21 unset($this->arr); 22 echo "释放资源"; 23 } 24 25 //在指定位置插入元素(第二个参数为空时,默认在表最后插入) 26 function ListInsert($data,$poi='-1') 27 { 28 if($poi=='-1') 29 { 30 array_push($this->arr,$data); 31 } 32 else if($poi>0) 33 { 34 array_splice($this->arr,$poi-1,0,$data); 35 } 36 } 37 38 //输出线性表 39 function ListTraverse() 40 { 41 print_r($this->arr); 42 } 43 44 //输出线性表长度 45 function ListLength() 46 { 47 $this->length=count($this->arr); 48 echo " 长度:".$this->length; 49 } 50 51 //清空线性表 52 function ListClear() 53 { 54 echo "清空表:"; 55 unset($this->arr); 56 $this->arr=array(); 57 } 58 59 //判断线性表是否为空 60 function ListEmpty() 61 { 62 if($this->length==0) 63 { 64 echo " 空"; 65 return false; 66 } 67 else{ 68 echo " 非空"; 69 return true; 70 } 71 } 72 73 //获取线性表指定位置的数据 74 function GetElem($poi) 75 { 76 if($poi>$this->length||$poi<=0) 77 { 78 return false; 79 } 80 else{ 81 return $this->arr[$poi-1]; 82 } 83 84 } 85 86 //定位第一个与指定数据相等的元素位置(即下表+1) 87 function LocateElem($data) 88 { 89 if(in_array($data,$this->arr)){ 90 for($i=0;$i<$this->length;$i++) 91 { 92 if($this->arr[$i]==$data) 93 { 94 return $i; 95 break; 96 } 97 else{ 98 continue; 99 }100 }101 }102 else{103 return -1;104 } 105 }106 107 //返回指定数据的前驱108 function PriorElem($cur)109 {110 if($this->LocateElem($cur)==0)111 {112 return false;113 }114 else if($this->LocateElem($cur)>0)115 {116 $location=$this->LocateElem($cur);117 return $this->arr[$location-1];118 }119 else if($this->LocateElem($cur)==-1)120 {121 return -1;122 }123 }124 125 //返回指定数据的后继126 function NextElem($cur)127 {128 if($this->LocateElem($cur)==($this->length-1))129 {130 return false;131 }132 else if($this->LocateElem($cur)>0)133 {134 $location=$this->LocateElem($cur);135 return $this->arr[$location+1];136 }137 else if($this->LocateElem($cur)==-1)138 {139 return -1;140 }141 }142 143 function ListDelete($poi)144 {145 if($poi<1||$poi>$this->length)146 {147 return false;148 }149 else{150 $res=$this->arr[$poi-1];151 unset($this->arr[$poi-1]);152 return $res;153 }154 }155 }156 157 ?>