연관 배열
연관 배열은 배열과 같이 여러 개의 데이터를 할당할 수 있는 상자를 가지고 있다. 각 상자는 임의의 이름(키)을 붙이는 것으로 상자를 식별할 수 있다. 키와 데이터를 관련지어 보관하고 싶을 때 연관 배열을 사용한다. 예로 회원 한 명의 이름과 주소나 전화번호와 같은 데이터를 조작할 때 편리하게 사용할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
// 연관 배열에 이름($member)을 붙인다.
// [""]을 이용해서 키를 지정한다.
// ""을 이용해 지정된 키에 값을 할당한다.
$member["name"] = "김철수";
$member["age"] = "30";
$member["height"] = "180";
$member["weight"] = "70";
// 연관 배열의 데이터를 출력한다.
print $member["name"];
print "<br>";
print $member["age"];
print "<br>";
print $member["height"];
print "<br>";
print $member["weight"];
// array 함수도 가능하다.
$memder = array("name" => "박은혜","age" => "25","height"=>"165","weight"=>"48");
// 연관 배열의 데이터를 출력한다.
print $member["name"];
print "<br>";
print $member["age"];
print "<br>";
print $member["height"];
print "<br>";
print $member["weight"];
?>
|
cs |
데이터를 할당하는 방법과 출력하는 방법은 위와 같다. 배열과 연관 배열을 사용하는 다차원 배열을 사용할 수 있는데, 주로 데이터베이스를 다룰 때 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?php
$member[0] = array("name" => "John","age" => "30","height"=>"180","weight"=>"80");
$member[1] = array("name" => "James","age" => "27","height"=>"178","weight"=>"72");
$member[2] = array("name" => "Tony","age" => "25","height"=>"179","weight"=>"75");
$member[3] = array("name" => "Mary","age" => "31","height"=>"165","weight"=>"45");
$member[4] = array("name" => "Susan","age" => "29","height"=>"166","weight"=>"47");
print "0번";
print "<br>";
print $member[0]["name"];
print "<br>";
print $member[0]["age"];
print "<br>";
print $member[0]["height"];
print "<br>";
print $member[0]["weight"];
print "<hr>";
print "1번";
print "<br>";
print $member[1]["name"];
print "<br>";
print $member[1]["age"];
print "<br>";
print $member[1]["height"];
print "<br>";
print $member[1]["weight"];
print "<hr>";
print "2번";
print "<br>";
print $member[2]["name"];
print "<br>";
print $member[2]["age"];
print "<br>";
print $member[2]["height"];
print "<br>";
print $member[2]["weight"];
?>
|
cs |
배열의 인덱스(0번, 1번, 2번...)에 각각의 이름(키)를 가지는 값을 할당하는 방법이다. 또한 배열과 연관 배열에는 PHP에서 사용하는 모든 데이터형을 할당할 수 있다.
연산자
산술 연산자는 사칙연산같이 기본적인 계산을 위한 연산자이다.
연산자 | 작성 예 | 의미 |
+ | 5 + 1 | 덧셈 |
- | 5 - 2 | 뺄셈 |
* | 5 * 3 | 곱셈 |
/ | 5 / 5 | 나눗셈 |
% | 5 % 3 | 나머지 |
수치를 직접 작성하거나 $a + $b와 같이 변수로 지정할 수 있다. 그 외에는 자바스크립트의 연산자와 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
// 덧셈
$answer = 5 + 1;
print "5 + 1 = $answer";
print "<br>";
// 뺄셈
$answer = 5 - 2;
print "5 - 2 = $answer";
print "<br>";
// 곱셈
$answer = 5 * 3;
print "5 * 3 = $answer";
print "<br>";
// 나눗셈
$answer = 5 / 5;
print "5 / 5 = $answer";
print "<br>";
// 나머지
$answer = 5 % 3;
print "5 % 3 = $answer";
print "<br>";
?>
|
cs |
할당 연산자는 변수나 배열에 데이터를 할당(대입)할 때에 사용한다. 그 외에 기능도 존재한다.
연산자 | 작성 예 | 의미 |
= | $num = 20; | 변수 $num에 20을 할당한다. |
+= | $num += 20; | 변수 $num에 20을 더하여 할당한다. |
.= | $string .= "문자열"; | 변수 $string에 문자열을 연결하여 할당한다. |
+= 같은 경우는 자바스크립트에 복합 대입 연산자 유사한 개념이다.
.= 는 자바스크립트의 .concat() 메서드나 문자열끼리 +으로 연결한 것과 유사하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
// += 연산자
$data = 20;
$age = $data;
$age += 5;
print $age;
print "<br>";
// .= 연산자
$data = '김철수';
$name = $data;
$name .= "박은혜";
print $name;
print "<br>";
?>
|
cs |
비트 연산자는 비트 단위로 데이터를 조작하기 위해 존재한다. 연산 결과는 정수이다. PHP로 웹 애플리케이션을 작성할 때는 거의 사용되지 않는다.
연산자 | 작성 예 | 의미 |
& | $a & $b | AND(논리곱) |
! | $a ! $b | OR(논리합) |
^ | $a ^ $b | XOR(배타적 논리합) |
~ | ~ $a | NOT(부정) |
<< | $a << $b | left shift(왼쪽 시프트) |
>> | $a >> $b | right shift(오른쪽 시프트) |
&를 예로 들면 $a & $b와 같이 작성을 하면 $a, $b에 할당된 변수를 이진수로 인식하고 양쪽의 각 항의 비트 그대로 논리곱을 계산하게 된다. 양쪽의 비트가 1인 경우에만 결과가 1이 되는 연산 처리를 한다.
예시로 0 & 0인 경우 0을 출력한다. 또한 1 & 1인 경우에는 1을 출력한다. 1 & 0 또는 0 & 1인 경우는 전부 0을 출력하게 된다.
비교 연산자는 if문, 삼항 연산자나 반복문에서 주로 사용하게 된다. 자바스크립트의 비교 연산자와 유사한 기능을 한다.
연산자 | 작성 예 | 의미 |
== | $a == $b | $a와 $b가 같다. |
=== | $a === $b | $a와 $b가 같고, 같은 자료형이다. |
!= | $a != $b | $a가 $b와 같지 않다. |
<> | $a <> $b | $a가 $b와 같지 않다. |
!== | $a !== $b | $a가 $b와 같지 않고, 같은 자료형이 아니다. |
< | $a < $b | $a가 $b보다 작다. |
> | $a > $b | $a가 $b보다 크다. |
<= | $a <= $b | $a가 $b보다 작거나 같다. |
>= | $a >= $b | $a가 $b보다 크거나 같다. |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
// [1] 출력
print true;
print "<br>";
// 아무것도 출력하지 않음
print false;
print "<br>";
// [1] 출력
print (5 == 5);
print "<br>";
// 아무것도 출력하지 않음
print (5 == 4);
?>
|
cs |
삼항 연산자는 ?와 :을 이용해서 구문을 작성한다. 비교 연산자로 구성한 조건식의 비교 결과가 TRUE일 경우에는 값 1을 $변수에 할당을 하게 되고, FALSE일 경우에는 값 2를 $변수에 할당을 하게 된다. if문을 사용하는 것보다 간편하게 한 행에 작성이 가능하기 때문에 널리 사용하는 연산자 중에 하나이다.
1
2
3
4
5
6
7
|
<?php
$age = 19;
$adult_age = 20;
$adult_check = ($adult_age <= $age)?"어른":"아이";
print $adult_check." 입니다.";
?>
|
cs |
오류 제어 연산자는 PHP 식(함수나 변수) 앞에 붙이는 것으로 식에 오류가 있어도 오류 메세지를 무시할 수 있게 만든다. 오류 제어 연산자는 @로 변수, 함수, include(), 정수의 앞에 붙일 수 있다. 함수의 정의 부분이나 foreach문, 조건문의 앞에는 붙일 수 없다. 경로 오류와 같은 메세지는 @를 붙여도 출력이 된다.
프로그래밍중에 이 연산자를 사용하면 오류가 발생하더라도 어딘지 확인할 수 없게 되므로 어떤 상황이든 오류를 출력하고 싶지 않을 때만 사용해야한다.
실행 연산자는 PHP를 실행하고 있는 windows나 Mac, Linux 같은 OS의 명령을 실행하기 위해 사용된다. 실행을 위해서는 ``(백쿼터)를 사용한다.
1
2
3
4
5
6
7
8
|
<?php
$filelist = `ls -laF`;
// $filelist = `dir`;
print "<PRE>";
print $filelist;
print "</PRE>";
?>
|
cs |
위의 코드를 windows에서 실행하는 경우 $filelist = `dir`;로 명령을 변경하게 된다.
증가 연산자는 프로그램에서 변수에 1을 더하거나 1을 빼는 처리를 할 때 사용한다. 자바스크립트에서도 ++나 --등을 사용하는 것과 같다.
연산자 | 작성 예 | 의미 |
++ | ++$count | $count를 1 증가시키고, $count를 반환한다. |
++ | $count++ | $count를 반환하고 $count를 1 증가시킨다. |
-- | --$count | $count를 1 감소시키고 $count를 반환한다. |
-- | $count-- | $count를 반환하고 $count를 1 감소시킨다. |
논리 연산자는 비교 연산자에서 작성한 조건식을 여러 개로 조합할 때 사용한다. 주의할 점은 &&와 ||는 and와 or 보다 우선순위가 높다.
연산자 | 작성 예 | 의미 |
and | $a and $b | 논리곱인 $a와 $b가 모두 TRUE면 TRUE |
or | $a or $b | 논리합인 $a나 $b가 TRUE면 TRUE |
xor | $a xor $b | 배타적 논리합인 $a와 $b중 하나만 TRUE일 때만 TRUE |
! | !$a | 부정인 $a가 TRUE가 아니면 TRUE |
&& | $a && $b | 논리곱인 $a와 $b가 모두 TRUE면 TRUE |
|| | $a || $b | 논리합인 $a나 $b가 TRUE면 TRUE |
배열 연산자는 배열에 배열을 추가하기 위한 연산자이다. $c = $a + $b와 같이 +를 사용한다. 배열을 추가할 때는 키가 같은 것이 이미 있으면 덮어쓰지 않는다.
1
2
3
4
5
6
7
8
9
10
|
<?php
$data1 = array("name" => "김철수", "age" => 20);
$data2 = array("name" => "박은혜", "age" => 30, "tall" => 180);
$data = $data1 + $data2;
print "<PRE>";
// var_dump 함수는 배열의 구조를 표시해준다.
var_dump($data);
print "</PRE>";
?>
|
cs |
if문
자바스크립트의 if 조건문과 같다. 단순 if문과 if else문을 사용하는것도 자바스크립트와 같다.
1
2
3
4
5
6
7
8
9
10
11
|
<?php
$username = "user";
$password = "pass";
$db_data["username"] = "user";
$db_data["password"] = "pass";
// if문 시작
if($db_data["username"] == $username && $db_data["password"] == $password){
print "회원 페이지입니다.";
}
?>
|
cs |
$db_data의 값는 데이터베이스에서 취득한 데이터가 할당이 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
$username = "user";
$password = "pass";
$db_data["username"] = "user";
$db_data["password"] = "pass";
// if문 시작
if($db_data["username"] == $username && $db_data["password"] == $password){
print "회원 페이지입니다.";
}else{
print "로그인에 실패하였습니다.";
}
?>
|
cs |
if else문은 FALSE일 경우에 처리를 추가하는 기능이다. 이전에 삼항 연산자에 대해 설명을 했었는데, 삼항 연산자와 if문은 서로 바꿔 사용도 가능하다.
1
2
3
4
5
6
7
8
9
10
|
<?php
$adult_check = ($adult_age <= $age)? "어른":"아이";
// 위와 같은 코드이다.
if($adult_age <= $age){
$adult_check = "어른";
}else{
$adult_check = "아이";
}
?>
|
cs |
switch문
if else문은 조건식이 하나만 있지만, 여러 조건식을 판단하려면 if else if else문을 사용한다.
1
2
3
4
5
6
7
8
9
10
11
|
<?php
$type = "form";
if($type == "form"){
print "등록 폼입니다.";
}else if($type == "exec"){
print "등록 처리를 실행 중";
}else{
print "화면이 없습니다.";
}
?>
|
cs |
조건이 많을수록 else if가 여러개가 만들어지게 되고 코드가 길어진다. 여러 개의 조건식에 if문을 여러번 포함하면 가독성이 떨어질 수 있고, 의도대로 프로그램이 작동하지 않을 수 있기 때문에 이 경우에는 switch문을 사용하게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
$type = "form";
// switch문 시작
switch($type){
case "form":
print "등록 폼입니다.";
break;
case "confirm":
print "확인 화면입니다.";
break;
case "exec":
print "등록 처리를 실행 중";
break;
default:
print "화면이 없습니다.";
}
?>
|
cs |
주의할 점은 switch문에서 시작한 처리는 반드시 break문으로 완료해야 한다.
'프로그래밍 공부 > PHP' 카테고리의 다른 글
PHP - 문자열 조작 (0) | 2020.01.21 |
---|---|
PHP - 인수, 반환 값 그리고 전역 변수 (0) | 2020.01.16 |
PHP - continue문/break문, reqire문/include문 그리고 사용자 정의 함수 (0) | 2020.01.16 |
PHP - while문, for문 그리고 foreach문 (0) | 2020.01.15 |
PHP - 개요, 규칙, 상수와 변수 그리고 배열 (0) | 2020.01.10 |