この記事では線形テーブルの逐次記憶構造の原理解析とコード例を中心に解説していますので、一定の参考価値があり、興味のある方はぜひ学んでみてください。
1. PHP の配列は実際には順序付けられたマッピングであり、配列、リスト、ハッシュ テーブル、辞書、セット、スタック、キューとして使用でき、固定長ではありません
2. 複数の配列定義ユニットはすべて同じキー名を使用し、最後のものだけが使用され、前のものは上書きされます
3. 関数のパラメーターを常に参照渡ししたい場合は、それをキーの前に追加できます。関数定義のパラメーター シンボル &
4.PHP の参照はエイリアスです。つまり、2 つの異なる変数名が同じ内容を指します。「デフォルトでは、オブジェクトは参照によって渡されます。」しかし、実際には、これは完全に正しいわけではなく、オブジェクトがパラメータとして渡されるか、結果として返されるか、または別の変数に代入される場合、他の変数には元の変数との参照関係はありませんが、両方の変数には同じオブジェクトのコピーが格納されます。識別子
<?php class Sqlist{ public $data=array(); public $length=0; } //插入元素 function listInsert(&$sqlist,$i,$e){ //位置是否超出范围 if($i<1 && $i>$sqlist->length+1){ return false; } //从插入位置开始,后面的所有元素都退一位 if($i<=$sqlist->length){//要插入的位置不是在尾部 for($k=$sqlist->length-1;$k>=$i-1;$k--){ $sqlist->data[$k+1]=$sqlist->data[$k]; } } //新元素插入 $sqlist->data[$i-1]=$e; //长度加1 $sqlist->length++; return true; } //获取元素 function getElement($sqlist,$i,&$e){ if($sqlist->length==0 || $i<1 || $i>$sqlist->length){ return false; } $e=$sqlist->data[$i-1]; return true; } //删除元素 function listDelete($sqlist,$i,&$e){ if($sqlist->length==0 || $i<1 || $i>$sqlist->length){ return false; } $e=$sqlist->data[$i-1]; //如果是最后一个元素 if($i!=$sqlist->length){ //在删除位置之后的元素,往前移动一位 for($k=$i-1;$k<=$sqlist->length-1;$k++){ $sqlist->data[$k]=$sqlist->data[$k+1]; } } $sqlist->length--; } //插入线性表 $sqlist=new Sqlist(); listInsert($sqlist,1,"Tau"); listInsert($sqlist,1,"Shihan"); //获取元素 $e=""; getElement($sqlist,2,$e); echo $e."\n";//输出Tau //删除元素 listDelete($sqlist,1,$e); var_dump($sqlist);
関連チュートリアル:PHPビデオチュートリアル
以上が【PHP学習】線形テーブルの逐次記憶構造原理の解析とコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。