Introduction of PHP. Tutorial |
<?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 이 쉽다.
'프로그래밍 놀이터 > Web' 카테고리의 다른 글
chrome 에서 request, response header 보기. (0) | 2013.11.07 |
---|---|
[jQuery] Slider 컨트롤. ( control ) (0) | 2013.11.05 |
MySQL Tools 추천 리스트. (0) | 2013.09.17 |
[MySQL] 계정 생성과 권한 부여 (0) | 2013.09.07 |
[MySQL] MySQL 장점 (0) | 2013.09.04 |
댓글