본문 바로가기

프로그래밍/PHP

php 기본 자료 2

반응형

1. 배열

2. 연산자




1. 배열 


- 일차원 배열

list()나 array() 함수를 이용하여 배열을 만들거나, 각원소에 값을 정해주어 배열을 만드는 방법이 있습니다. 



이렇게 직접 각원소마다 저장될 위치와 값을 대입하여 배열을 만들거나, 또는 저장될 위치는 자동으로 입력되므로 아래와 같이 쓸 수도 있습니다. 


이렇게 사용하여도 위의 식과 같은 결과가 나옵니다. 저장위치는 [0]번째부터 차례로 하나씩 증가됩니다. 

* asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), uksort() 함수 ; 배열을 순서대로 정렬

* count() 함수 ; 배열의 원소 갯수를 셀 때

* next()와 prev() 함수 또는 each() 함수 ; 배열의 내용 탐색 


위에 사용된 것과 같은 indexed 배열은 배열 첨자(index)를 정수로 나타내었습니다. associative 배열은 배열 첨자를 문자열로 나타내며 다음처럼 표현할 수 있습니다. 



array() 함수를 이용하면 다음과 같이 나타낼 수 있으며 결과는 동일합니다. 

array(

   "학교" => "아이헬퍼스",

   "학급" => "PHP반",

   "학년" => "고학년"

);

echo "저는 $a[학교]에 다니고 있으며, 반은 $a[학급]이며, $a[학년]입니다.\n";

?>

출력결과는 다음과 같이 나오죠... 저는 아이헬퍼스에 다니고 있으며, 반은 PHP반이며, 저학년입니다. 

- 다차원 배열



array(

   "식목일"  => array(

"날짜"  => "4월 5일",

"요일"  => "목요일"

   ),

   "어린이날"  => array(

"날짜"  => "5월 5일",

"요일"  => "토요일"

   ),

   "현충일"  => array(

"날짜"  => "6월 6일",

"요일"  => "수요일"

   )

); 

echo $a["어린이날"]["요일"];   // 결과값 "토요일"

?>

array 안에 또 array를 사용하여 1차원이 아닌 다차원 배열을 만들어 보았습니다.

$a["어린이날"]["요일"]에서 앞에 "어린이날"은 "식목일, 어린이날, 현충일"의 배열 중에서 선택된 것이며, 뒤의 "요일"은 어린이날이 다시 "날짜, 요일"로 배열이 되어 그중의 선택된 값을 구하는 것입니다. 따라서 그 결과값은 "토요일"이 되는 것입니다. 

위에는 문자열 첨자를 이용한 배열을 표현해 보았습니다. 그럼 정수형 첨자를 사용한 배열을 한번 볼까요...

(예; $a[0][0],$a[0][1]과 같은 정수형 첨자) 


array(

array("식목일","4월 5일","목요일"),

array("어린이날","5월 5일","토요일"),

array("현충일","6월 6일","수요일")

); 

echo $a[0][0] . "은 " . $a[0][1] . " " . $a[0][2] . "입니다." . 

   $a[1][0] . "은 " . $a[1][1] . " " . $a[1][2] . "입니다." .

   $a[2][0] . "은 " . $a[2][1] . " " . $a[2][2] . "입니다."; 

?>

결과는 이렇게 나옵니다.

식목일은 4월 5일 목요일입니다.

어린이날은 5월 5일 토요일입니다.

현충일은 6월 6일 수요일입니다. 

위에서 사용한 배열의 위치값을 표로 나타내면 이렇게 표현이 됩니다. "식목일" "4월 5일" "목요일"   [0][0] [0][1] [0][2] 

"어린이일" "5월 5일" "토요일" ======> [1][0] [1][1] [1][2] 

"현충일" "6월 6일" "수요일"   [2][0] [2][1] [2][2] 



2. 연산자 


- 산술연산자

산술연산자는 가감승제 연산을 합니다.

산술연산자에는 

$a + $b (더하기)

$a - $b (빼기)

$a * $b (곱하기)

$a / $b (나누기, $a에서 $b를 나눈 몫)

$a % $b (나누기, $a에서 $b를 나눈 나머지) 가 있습니다. 


- 대입연산자

대입연산자는 "="입니다. 대입연산자의 값은 왼쪽으로 대입된 값입니다.



// $a는 5, $b는 10의 값을 가짐.

?>

- 비트연산자

$a & $b (AND, $a와 $b가 모두 1인 비트만 1)

$a | $b (OR, $a와 $b중 하나라도 1인 비트는 1)

$a ^ $b (XOR, $a와 $b중 하나는 1, 다른 하나는 0인 비트만 1)

  ~ $a    (NOT, $a에서 1인 비트는 0, 0인 비트는 1)

$a << $b (SHIFT LEFT, $a의 비트를 $b 만큼 왼쪽으로 SHIFT)

$a >> $b (SHIFT RIGHT, $a의 비트를 $b 만큼 오른쪽으로 SHIFT) 


- 비교연산자

$a == $b ($a와 $b가 같으면 참)

$a === $b ($a와 $b가 같으면 참, 둘의 type까지 동일해야 함)

$a != $b ($a와 $b가 다르면 참)

$a < $b ($a가 $b 보다 작으면 참)

$a > $b ($a가 $b 보다 크면 참)

$a <= $b ($a가 $b 보다 작거나 같으면 참)

$a >= $b ($a가 $b 보다 크거나 같으면 참) 


(ex1)?(ex2):(ex3);   --> ex1의 결과가 참이면 ex2를 리턴하고, 거짓이면 ex3을 리턴 


- 증가감소연산자

++$a ($a를 1 증가시킨 후, $a를 반환)

$a++ ($a를 반환한 후, $a를 1 증가)

--$a ($a를 1 감소시킨 후, $a를 반환)

$a-- ($a를 반환한 후, $a를 1 감소)



// 값은 5

echo '$a = ' . $a . "\n";   // 값은 6

$a = 5;

echo '$a = ' . ++$a . "\n";   // 값은 6

echo '$a = ' . $a . "\n";   // 값은 6

$a = 5;

echo '$a = ' . $a-- . "\n";   // 값은 5

echo '$a = ' . $a . "\n";   // 값은 4

$a = 5;

echo '$a = ' . --$a . "\n";   // 값은 4

echo '$a = ' . $a . "\n";   // 값은 4

?>

- 논리연산자

$a and $b (AND, $a와 $b가 모두 참이면 참)

$a or $b (OR, $a와 $b중 하나라도 참이면 참)

$a xor $b (XOR, $a와 $b중 하나만 참이어야 참)

  ! $a    (NOT, $a가 참이 아니면 참)

$a && $b (AND, $a와 $b가 모두 참이면 참)

$a || $b (OR, $a와 $b중 하나라도 참이면 참) 


- 문자열연산자

문자열연산자는 두가지가 있습니다.

왼쪽과 오른쪽의 두 문자열을 연결하는 연결연산자(".")와 연결대입연산자(".=")가 있습니다. 


. " 배워보자";

echo $str;   // PHP를 배워보자 -> 이렇게 화면출력됨.

$str = "PHP를";

$str .= " 배워보자";

echo $str;   // PHP를 배워보자 -> 이렇게 화면출력됨.

?>



반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 기본 자료 3  (0) 2012.08.17
php 기본 자료 1  (0) 2012.08.17
php -xml parser  (0) 2012.08.17
php - 이메일 존재여부 검색 프로그램  (0) 2012.08.17
php - 소켓 통신 자료(socket fd 에서 eof 인식문제)  (0) 2012.08.17