시소당
칭찬해주십시요 ㅎㅎ
자바의 ArrayList가 그리워 php로 한번 구현해 봤습니다...
<?php
// arraylist.php
class ArrayList {
private
$arr = array(); // 이곳에 쌓임
private
$index;
function __construct() {
$this->index = 0;
}
// 추가
function add(
$element) {
$this->arr[
$this->index++] =
$element ;
}
function indexOf(
$element) {
for (
$i=0;
$i < sizeof(
$this->arr) ;
$i++) {
// 변수가 객체인지 확인한다.
if (is_object(
$this->arr[
$i]) ) {
if (get_class(
$this->arr[
$i]) == get_class(
$element) )
{
return
$i;
}
}
else {
if (
$this->arr[
$i] ==
$element )
{
return
$i;
}
}
}
}
function remove(
$index) {
unset(
$this->arr[
$index]);
$f = array();
$z = 0;
for (
$i=0;
$i <
$this->size()+1;
$i++) {
if (isset(
$this->arr[
$i]) ) {
$f[
$z++] =
$this->arr[
$i] ;
} else {
continue;
}
}
$this->arr =
$f;
}
function size() {
return sizeof(
$this->arr);
}
function get(
$index) {
return
$this->arr[
$index];
}
}
?>
사용법은 자바랑 비슷합니다... 일단 객체 만들어주시구여..
$array = new ArrayList ;
변수나 객체를 넣을수 있습니다.
$array->add(
$a) // 변수라던지 아니면 객체모두
내부적으로 0 1 2 3 이렇게 차곡차곡 쌓입니다...
젤 중요한건
$array->remove(index번호) 이놈인데 삭제하고픈 요소의 인덱스번호를
넣어주시면 배열에서 삭제됩니다... 그리고 번호가 순차적으로 다시 정렬됩니다...
배열 중간이 땜방이 되지 않습니다 ㅎㅎ 테스트는 해보았구여 객체 변수 모두 됩니다...
그외
$array->indexOf(변수명이나 객체) 변수명이나 객체변수를 집어넣으면
배열에서 어디에 저장되어있는지 인덱스를 반환합니다...
$array->size() // 배열요소의 총개수를 반환합니다..
$array->get(인덱스번호) // 인덱스번호를 집어넣으면 해당하는 요소의 값을
// 반환합니다...
그런데 완벽하게 테스트해보진 않아서 어디에 버그가 있을지는 ㅠ
사실은 몇시간동안 삽질을 해서 에너지 고갈로 이글을 마지막으로 좀 쉴려고 합니다...
php5에서부터 완벽하게 객체지향이 지원된다고 했는데 막상 이렇게 자바 비슷하게 구현되니 왼지 몸으로 php의 위력이 몸으로 실감이 되네여 ㅎㅎㅎㅎ
이상 잡소리였습니다 ㅎㅎ
좋은 하루되세요... ^ ^
[이 게시물은 PHPSCHOOL님에 의해 2007-08-27 21:36:15 포럼에서 이동 됨]
출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=55846&sca=&sfl=wr_subject%7C%7Cwr_content&stx=php5&sop=and