이번엔 절차지향과 객체지향의 배열에 관해 설명합니다.
<h1> Procedural </h1>
<?php
$array1 = ['1', '2', '3'];
$array2 = array('1', '2', '3');
array_push($array1, 'A');
array_push($array2, 'B');
foreach($array1 as $item){
echo $item.'<br>';
}
foreach($array2 as $item){
echo $item.'<br>';
}
?>
<h1> Object Oriented </h1>
<?php
$array1 = new ArrayObject(['1','2','3']);
$array2 = new ArrayObject(array('1','2','3'));
$array1->append('A');
$array2->append('B');
foreach($array1 as $item){
echo $item.'<br>';
}
foreach($array2 as $item){
echo $item.'<br>';
}
?>
앞선 글과 마찬가지로 상단 Procedural 부분이 절차적 프로그래밍 코드이고,
밑에 Object Oriented 부분이 객체지향 프로그래밍 코드가 되겠습니다.
일단 두 코드의 기능은 완전히 동일합니다.
$array1 과 $array2 로 만들어 놓은 것은 배열을 만드는 방법이 달라 2가지로 표현하기 위함입니다.
연관배열로 선언하는 방법도 있지만 여기선 저 두 가지만 표현했습니다.
절차적 코드를 해석해보면,
array1 이라는 변수에 1,2,3 의 배열을 선언하였고, 마찬가지로 array2 라는 변수에 1,2,3 의 배열을 선언했습니다.
이후 array_push 라는 함수를 이용해 $array1, $array2 라는 배열에 각각 A,B 라는 문자를 추가한 것 입니다.
그 다음 foreach를 이용해 배열값을 나타냈습니다. ( foreach 에 대한 설명 : https://sojinhwan0207.tistory.com/119 )
foreach 문 내에서 array1이라는 배열을 $item 이라는 파라미터로 하여 배열값 하나씩 echo로 출력 한 코드입니다.
array2도 마찬가지 입니다.
이제 객체지향형 코드를 해석해보겠습니다.
위와 마찬가지로 array1과 array2에 배열을 생성했습니다.
변수 = new ArrayObject(배열);
new를 사용하여 선언한 변수이므로 저 $array1,2 라는 변수는 인스턴스, 즉 객체가 되겠습니다.
저 객체 자체가 배열이라기 보단 배열데이터를 내부적으로 가지고있는 객체라고 이해하면 됩니다.
그리고 array_push와 같은 역할을 하는 append를 이용해 배열에 값을 추가했습니다.
이 방식도 앞선 글과 마찬가지의 문법으로 코드를 작성한 것 입니다.
객체->메소드(인자);
그 다음은 foreach문을 동일하게 적었습니다.
'php' 카테고리의 다른 글
클래스 및 객체(5) (0) | 2021.08.17 |
---|---|
클래스 및 객체(4) - $this-> 의 이해 (0) | 2021.08.05 |
클래스 및 객체(2) (0) | 2021.08.04 |
클래스 및 객체(1) (0) | 2021.08.03 |
함수 (0) | 2021.07.18 |