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 ?>