logo

  • 홈으로
  • 로그인
  • 회원가입
  • 화면축소
  • 화면확대
2018년 10월 15일
  • 포토누리
  • 제작의뢰
  • 포트폴리오
잡다한몽상백서 메인배너
로그인
조회 수 62401 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

제목 : PHP 내공올리기 강좌 1 : foreach 사용법

글쓴넘 : 위경섭

저작권 : 위경섭

 

이 글은 글쓴넘과 저작권을 표시하여 배포 가능함다 !!!

--

 

foreach 사용법

 

우선 foreach 문법의 prototype 을 보자

 

1. foreach (array_expression as $value) statement

첫번째 사용법은 배열의 첨자를 무시하고 값만을 사용하고 싶을때 사용한다.

 

이런배열이 있다고 가정해 보자

 

$my_arr[0] = "apple";

$my_arr[5] = "orange";

$my_arr[15] = "pineapple";

 

이 배열을 출력하는 일반적인 for 문을 구성해보자.

 

for($i=0;$i<=15;$i++)

{

    if( $my_arr[$i] != "") echo $my_arr[$i];

}

 

세개의 내용을 표시하기위해 15번의 루프를 돈다. 이걸 foreach 로 바꿔보자.

 

foreach($my_arr as $fruit)

{

    echo $fruit;

}

 

이 문장은 세개의 과일을 표시하기위해 정확히 세번만 돈다..

 

2. foreach (array_expression as $key => $value) statement

 

이제 좀더 파워풀한 두번째 사용법을 보자.

 

위의 예를 그대로 써서...

 

foreach($my_arr as $idx => $fruit)

{

    echo "INDEX : $idx, fruit : $fruit";

}

 

두번째의 경우는 PHP에 존재하는(다른언어에도 있을랑가 모르겠지만...) 문자열첨자르 사용할 경우 아주 유용하다.

 

// 설정값 저장용 배열

$my_cnf["version"] = "1.5";

$my_cnf["appname"] = "My Application";

$my_cnf["Author"] = "위경섭";

 

foreach($my_cnf as $keyName => $value)

{

    echo "$keyName = $value";

}

 

이제 아주 유용한 실전 예제를 한번 만들어보자..

 

문)

내가 호스팅받는 계정이 보안상의 이유로 PHP register global 을 off 해놨다.

그래서 내가만든게시판의 action 파일에 있는 $subject 등을 $_POST["subject"] 로 바꿔서

써야한다. 근데 이게 일이 넘 많다!.. 이걸 일일이 안바꾸고 해결할 방법이 있겠는가 ?

 

답)

일단 $_POST 의 특성을 보자...

 

$_POST 는 웹페이지에서 <form method=post ...> 했을때 폼태그 내에있는 양식(input,select 등등) 의 값이 넘어오는 배열이다. PHP의 register global 이 on 되어있으면 PHP가 자동으로 해당변수의 이름으로 매핑해준다. 하지만 off 이면 $_POST["name속성명"] 으로 참조해야한다.

 

그다음 PHP의 참조변수 기능을보자.

 

$fruit = "apple";

$apple = "이것은 사과";

echo $$fruit; // "이것은 사과" 를 출력함..

 

변수명을 문자열로 사용할 수 있다..즉

$apple === $$fruit 인 것이다..

 

이제 $_POST 배열안의 각변수들을 실제 변수로 만들어보자

 

foreach($_POST as $key => $value)

{

    $$key = $value;

}

 

끝났다...이제 register global=off 상태에서도 내가 폼을 통해넘긴 변수를 register global on 일때 처럼 사용할 수 있다.

 

$$key = $value;

 

$key 에는 $_POST 배열의 첨자가 온다.

 

$_POST["subject"] = "나의 게시물";

 

여기서 "subject" 가 $key 에 "나의 게시물" 이 $value 에 들어간다.

 

위에서 설명한 변수참조 기능에서

$$key -->  $"subject" 가 되고($subject 변수가 생성된다) 여기에 $value를 넣으므로

 

$subject = $value;

 

이런 결과가 되어

 

$_POST["subject"] = "나의 게시물";

 

이 문장에서 아래의 문장이 실행된다.

 

$subject = "나의 게시물";

 

이렇게 해서 폼에서 넘긴 name=subject 폼이 $subject 로 사용가능하게 된다.

 

  • ?
    지나가던이 2010.07.14 23:32

    마지막에 저렇게 하지말고 그냥 extract를 사용하면 되지 않나요...

  • ?
    행운운행 2011.06.23 09:51

    도움많이 되었습니다. 고맙습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
21 do while 문으로 1부터 100까지 합구하기 똑띠 2010.03.04 19478
20 while 문 사용법 똑띠 2010.03.04 13325
19 DB 접근 및 쿼리문(insert,select,update,delete) 3 똑띠 2010.02.17 31132
18 문자변환 (쌍따옴표제거 및 기타)- str_replace 똑띠 2009.11.23 31649
17 :: 는 어떤 경우 사용하나? 똑띠 2009.10.20 12759
16 자바스크립트에서 return의 의미 똑띠 2009.10.20 24183
15 sprint 사용법 안내 똑띠 2009.08.26 15898
14 php 간단 문법 체크 - 글자 자르기 substr() 함수 똑띠 2009.07.06 23557
13 foreach문이 변환 똑띠 2009.05.31 16099
12 파일 등록시 특수문자 걸러서 등록하기 똑띠 2009.01.15 20990
11 숫자를 통화 단위 형태로 보여주기 1 똑띠 2008.12.24 23143
10 explode() - 구분자 기준으로 문자 배열처리 똑띠 2008.10.20 33996
9 Callback 함수란? 똑띠 2008.07.31 34136
8 Type변환 2 똑띠 2008.03.01 34499
7 foreach 예제 똑띠 2007.10.18 37816
6 클래스(class)에서 지시자(->)의 의미 1 똑띠 2007.07.28 48108
5 클래스( Class ) 사용을 위한 기본 지식 2 똑띠 2007.07.17 45823
4 unset(); 에 대해서 알아보장.. 똑띠 2007.07.30 42842
» foreach문 사용법에 대하여 2 똑띠 2007.07.30 62401
2 php에서 상수 정의 define(); 똑띠 2007.07.30 41343
목록
Board Pagination ‹ Prev 1 2 3 4 Next ›
/ 4

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

  • Designed by jobdahan.net