728x90

php는 웹프로그래밍 언어이지만 사실 웹에서만 사용하는게 아니라 인터프리터를 사용해서 커맨드라인에서 스크립팅을 해볼 수 있다. 그러나 아무도 그러한 용도로 사용하지 않기 때문에 필자의 홈페이지에서는 그러한 것을 고려하지 않는다. 따라서 모든 상황은 apache와 php와 mysql을 사용하게 될것이다. 그리고 모든 테스트는 웹페이지에서만 할것이며 가끔 필요하다면 인터프리터에서 사용하게 될것이다. 강의에서는 일반적인 상황에서는 툴을 사용하는 방법을 알려주지 않을 것이다. 툴을 사용하는 방법에 대해서 알기를 원한다면 usage-php를 확인하도록 하자.


참고:

[APM]PHP사용하기 - apache설치(1)

[APM]PHP사용하기 - php설치(2)


php에서 배열을 한번 사용해보도록하자.

배열이란 연속되서 붙어있는 자료구조를 의미한다. 같은 타입의 자료를 묶어줄때 사용하는 것이 배열인 것이다.

배열은 여러가지 특징을 지니지만 이번 시간에 배열을 자료구조적인 관점에서 설명하지 않겠다.

그냥 배열은 특정자료형을 한개가 아닌, 여러개를 묶어다니기 위해서 만든 것이다 정도로만 알면되겠다.

만약 자세한 설명이 필요하다면 이 곳을 참조하라.


php에서의 배열은 사실 일반 배열과는 약간 다르다.

그렇기에 두번 나눠서 설명하겠다. 이번 장에서는 일반 배열에 대해서 설명하도록 해보자.


$arr = array(2, 4, 6, 8, 10);

배열의 선언은 위와 같다.

array라는 함수를 사용해서 선언한다.

위와 같이 사용할 경우 배열의 크기는 5이며 원소는 순서대로 0부터 4까지가 된다.

즉 배열의 첫번째 요소는 1이 아니라 0이며 0번째 녀석의 값은 2라는 방식으로 사용되게 된다.


echo 'arr[1] = ' . $arr[1] . "<br>";

만약 배열의 두번째 요소를 출력하고 싶다면 위와 같이 사용하면된다.

이경우 배열의 2번째값이 화면에 출력되게 된다.


$arr = array(2, 4, 6, 8, 10 => 12, 14);

배열의 번호를 임의로 지정해 줄 수도있다.

가령 위의 예제의 경우 2,4,6,8번 까지는 0,1,2,3번이 매칭되게 된다.

그러나 12의 경우 10번을 매칭시켰다. 그리고 14번은 10번뒤에 있으므로 11번이 되게된다.

즉 2,4,6,8,12,14라는 값들은 각각 0,1,2,3,10,11번에 매칭되게 되는 것이다.


unset($arr[1]);

unset함수는 배열에서 요소를 삭제하는 함수이다.

위의 경우 배열에서 1번째 요소를 삭제하게 된다.


$arr[9] = 11;

위의 예제의 경우 두가지의 의미를 가진다.

먼저 만약 9번째 값이 존재했다면 그 값을 바꿔치게(insert) 된다.

만약 9번째 값이 존재하지 않았다면 그 값을 새로 만들게(create) 된다.

아래의 전체 예제를 실행해 보도록 하자.


<?php
$arr = array(2, 4, 6, 8, 10 => 12, 14);
echo 'arr count = ' . count($arr) . "<br>";

echo 'arr[1] = ' . $arr[1] . "<br>";
echo 'arr[11] = ' . $arr[11] . "<br>";
unset($arr[1]);


echo 'arr[1] = ' . $arr[1] . "<br>";
$arr[9] = 11;
echo 'arr[9] = ' . $arr[9] . "<br>";
echo 'arr count = ' . count($arr) . "<br>";

이 전체예제를 여러분은 이제 쉽게 이해할 수 있을 것이다.

여러분의 의도대로 작동되는지를 한번 확인해보자.


arr1은 삭제가 되어서 도중에 오류가 뜨게된다.

실전에서는 이런 상황이 나오지 안도록 코드를 짜야한다.



'Programming > PHP' 카테고리의 다른 글

[Php-09]반복문(while,dowhile,for,foreach)  (0) 2018.05.15
[Php-08]연관배열(AssociativeArray)  (0) 2018.05.15
[Php-06]switch문  (0) 2018.01.10
[Php-05]조건문  (0) 2018.01.10
[Php-04]연산자  (0) 2017.11.29

+ Recent posts