본문 바로가기
프로그래밍 놀이터/Web

[Tutorial] Introduction of PHP.

by 돼지왕 왕돼지 2013. 10. 5.
반응형


 Introduction of PHP. Tutorial

 

[Tutorial] Introduction of PHP.



<?php ?> 대신 <? ?> 를 사용하는 것을 SGML 방식이라고 하며, 이 스타일을 사용하려면 config 파일의 short_open_tags 를 활성화시키거나 짧은 스타일 태그를 사용할 수 있도록 PHP 를 컴파일 해야 한다. 이 방식은 대부분의 서버가 지원하지만, 몇몇 서버는 xml 형태의 선언에 영향을 주기 때문에 Off 를 시켜 놓는다. 따라서 특수한 경우 혹은 config 에 확신이 있는 경우가 아니면 사용하지 않는 것이 좋겠다.



<SCRIPT LANGUAGE="php'> </SCRIPT> 형식으로도 사용 가능하다.


ASP 방식으로 알려진 <% %> 도 사용할 수 있는데, 이 역시 config 파일에서 asp_tags 를 활성해놓았어야 사용할 수 있다. 이는 대부분의 서버에서 기본으로 활성화되어 있지 않기 때문에 "가급적" 사용하지 않는 것이 좋다.


결론 : <?php ?> 를 사용하는 것이 best!!





=====


주석을 사용할 때 주의할 점은 닫는 태그가 있을 경우 주석이 끝나 버린다.

예를 들어 아래와 같은 경우..


// here is a comment ?> here is not


php 가 닫힌 이후인 here is not 은 주석이 안 먹히고, html 로 인식된다.





=====


date() 함수.


H 는 24시간 형태의 시간. 두자리수를 맞추기 위해 앞에 0 을 붙이기도 한다.

i 는 두자리로 나태낸 분.

j 는 이번달의 날짜. 0 은 붙이지 않는다.

S는 서수접미사 ( th 붙는 녀석 )

F 는 이번 달의 이름. ( January )





=====


form field 접근 방법


1. $tire_qty

2. $_POST[ 'tire_qty' ]

3. $HTTP_POST_VARS[ 'tire_qty' ]


이 중 중간 스타일(2번)이 추천되기는 한다.


짧은 스타일(1번)은 편리하긴 하지만, register_globals 를 활성화시켜야 한다.

기본 설정값이 버전에 따라 다르다. 4.2.0 이후로는 기본이 비활성.

비활성 된 이유는 시간이 지날수록 많은 혼란을 발생시켰고,( user_defined 변수와 conflict ) 짧은 스타일을 사용하면 코드가 안전하지 못할 수 있다.


중간 스타일은 PHP 4.1.0 이후에서만 사용할 수 있다.


긴 스타일(3번)은 어디서나 사용할 수 있어 이식성이 높았지만, 성능을 높이기 위해 register_long_arrays 를 사용하여 비활성시킬 수 있다. 앞으로는 사용되지 않을 전망이다.


결론적으로 중간 $_POST[ 'tire_qty' ] 형태를 사용하자!!



이 중간형태는 $_GET, $_POST 와 $_REQUEST 를 사용할 수 있다. GET 과 POST 는 알 테고, GET, POST 상관없이 값에 접근하기 위해서는 REQUEST 를 사용하면 된다.





======


variable 을 출력할 때, 쌍따옴표 안에 변수명을 넣어주면, string 이 아닌 변수값으로 작동한다. 이것을 "삽입" 이라고 부른다. 홑따옴표는 모든 것을 string 로 여긴다.





======


perl 에서 사용하던 heredoc 문법 ( <<< ) 을 써서 문자열을 깔끔하게 정리하여 표시할 수도 있다.


echo <<< theEnd

line1

line2

line3

theEnd


여기서 theEnd 는 어떤 문자열도 될 수 있다. 끝마무리를 indicate 하는 녀석이다. 

heredoc 문자열도 큰따옴표처럼 삽입 방식이 취해진다.





============


php 의 데이터 형


1. 정수형 - 모든 숫자

2. 실수형( double ) - 실수

3. 문자열

4. boolean

5. array

6. object

7. NULL

8. resource ( 외부자원, 접하기 쉽지 않다. )








=======


가변 변수 ( variable variables )


변수명을 동적으로 바꿀 수 있다.


$tire_qty = 3;

$varname = 'tire_qty';


위와 같이 한 변수가 다른 변수 이름을 가지고 있다면,

해당 변수를 $$varname 으로 접근할 수 있다.


$$varname = 5;


이것은


$tire_qty = 5;


이것과 같다.





======


상수는 define 을 이용하여 정의한다.


define( 'TIRE_PRICE', 100 );


상수는 사용할 때 $ 를 붙여주지 않는다.

상수는 boolean, integer, double, string 값만 가질 수 있다. ( primitive )





=======


범위


1. 슈퍼 글로벌 - 스크립트 전역 사용

2. 상수 - 스크립트 전역

3. 전역 변수 - 스크립트 내에서 사용할 수 있지만, 함수 안에서는 사용할 수 없다.

4. 함수 안 변수 - 함수 안에서만 사용한다. 함수가 끝나면 삭제된다.

5. 함수 안에서 정의된 전역 변수 - 함수 밖에서는 사용할 수 없지만 매 사용 시마다 값이 저장된다. ( static 값을 이름 )


$_GET, $_POST 는 슈퍼 글로벌이다.

$GLOBALS 모든 전역 변수를 가진 배열

$_SERVER 서버 환경 변수

$_COOKIES : 쿠키 변수 배열

$_FILES : 파일 업로드 관련 변수 배열

$_ENV : 환경 변수 배열

$_SESSION : 세션 변수 배열





=====


산술 연산자는 정수와 실수형에서만 쓰일 수 있다.

문자열을 산술 연산하려 하면 문자열을 숫자로 바꾸어 실행한다.

문자열에 e 나 E 가 들어있다면 실수형으로 변환, 그 외는 정수형으로 변환.

문자열 처음에 나오는 숫자를 찾아 그것을 값으로 인식. 만약 문자열에 숫자가 없으면 0 이 된다.





======


참조연산자 & 가 있다.

pointer 의 개념보다는 별명 ( alias ) 에 가깝다.








=======


에러억제 연산자 @.


$a = @(57/0)


@ 가 없으면 에러가 발생하지만, @가 있어 에러를 무시하고 넘어간다.

만약 PHP 에서 track_errors 를 설정해 놓았다면

에러 메세지를 전역 변수인 $php_errormsg 에 저장한다.





=======


실행 연산자 ` ( ~ 밑에 있는 녀석 )


` 를 사용하면, 서버의 커맨드라인에 실행명령을 날릴 수 있고, 그 결과값이 리턴이 된다.





========


배열 연산자


$a + $b : a, b 가 가진 모든 원소 return

$a == $b : a, b 가 같은 요소를 가지고 있으면 true

$a === $b : a, b, 가 같은 요소, 같은 순서를 가지고 있으면 true

$a != $b ( <> ): a, b 가 같지 않으면 true

$a !== $b : a, b, 가 동일하지 않으면 true





======


print 와 echo 의 차이.


print 는 formating 을 하면서 출력하기에는 좋지만, 대체적으로 echo 보다 속도가 느리다.





=====


mixed 형.


어떤 형이든 상관없이 받을 수 있는 형태이다.





=====


형 검사 함수들


is_array

is_double, is_float, is_real

is_long, is_int, is_integer

is_string

is_object

is_resource

is_null

is_scalar : int, boolean, string, double 형 중 하나인지 검사

is_numeric

is_callable : 변수에 저장된 값이 호출가능한 함수 이름인지 검사








=====


boolean isset( mixed var )


변수의 존재여부를 검사한다.

, 로 여러개의 parameter 를 넣을 수 있다.





=====


void unset( mixed var )


변수를 삭제한다.





=====


boolea empty( mixed var )


변수가 존재하고, 비어 있지 않으며 0 이 아닌 값을 가지고 있으면 false, 

나머지는 true





=====


exit;


이것은 PHP Script 자체를 완전히 끝낸다.





=====


do...while 구문을 제외하고는 { } 대신

: 로 시작하고, endif, endswitch, endwhile, endfor, endforeach 등을 사용할 수도 있다.





======


declare( ticks= n ){

// blocks

}


이 구문은 declare 안의 n 개의 코드행만 수행한다.

n 값을 조정하면 debugging 이 쉽다.



반응형

댓글