일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 판매
- WebService
- WebLogic
- db
- Spring
- Swing
- 효민이
- 부동산
- ThinkFree
- Vista
- Java
- Mac
- Eclipse
- 요리
- 미국드라마
- 이승철
- 책
- Linux
- PSP
- Ant
- 행복이
- Programming
- spring3.0
- php
- 육아
- 독서
- Java5
- 중고
- Programing
- OS
- Today
- Total
Bitaholic
PHP 훑어보기 본문
폼변수 다루기
폼변수
PHP 스크립트에서 폼 필드 값은 PHP 변수처럼 접근 할수 있다.
3가지 방법이 있다.
ex)
$tireqty //짦은 스타일
$_POST['tireqty'] // 중간 스타일
$HTTP_POST_VARS['tireqty'] // 긴 스타일
1. 짧은 스타일 : register_globals를 활성화 시켜야 쓸수 있다. (비추천)
지역변수와 혼란을 야기 한다. 4.2.0이후로 비활성화 되어있다.
2. 중간 스타일 : 추천되는 방식(4.1.0이후에서만 가능)
3. 긴 스타일 : 지양되어 왔다. 모든 버전에서 사용할수 있어 이식성은 높다.
성능에 좋지 않다. registre_long_arays로 비활성화 할수 있다.
식별자(Identifier)
dfe
- 식별자는 변수의 이름을 말한다.
- 길이 제한은 없으며 문자,숫자,'_', '$'로 만들 수 있다.
- '$'는 가변변수때문에 조심해서 사용해야 한다.
-숫자는 매 앞에 올수 없다.
- 대소문자를 구분한다.
변수형
: 변수의 형(type)은 저장된 데이터의 종류에 따라 정해진다.
기본데이터형
■ Integer : 모든 숫자
■ Float
■ String
■ Boolean
■ Array
■ Object
이 외에 NULL형과 resource형(외부자원 ex DB연결)이 있다.
형 강도(Type Strength)
PHP는 형 강도가 매우 약한다. 변수에 저장된 값에 따라 형이 결정된다.
$a = 0;
$a = 0.00;
// $a는 처음엔 정수형이였다가 실수형으로 바뀐다.
$a = 'Hello'; // 이것도 가능하다 이제 $a는 문자열이다
가변 변수(variable varialbes)
: 가변변수를 사용하면 변수의 이름을 동적으로 바꿀수있다.
ex)
$varname = 'b';
$$varname = 5;
위는 $b = 5 와 하는 것과 동일하다.
상수
- 상수는define 함수를 사용하여 상수를 정의한다.
ex)
define('TIREPRICE' , 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);
- 상수의 사용
: 변수는 $를 붙이지만상수는 상수의이름만 적어주면 된다.
ex)
echo TIREPRICE;
변수의 범위(scope)6개의 범위를 가지고 있다.
-수퍼글로벌 변수는 스크립트 전역에서 사용할 수 있다.
- 한번 선언된상수는 스크립트 전역에서 사용할 수 있다. 즉 함수의 안과 밖 모두에서 사용할 수 있다.
-전역변수는 스크립트 내에서 정의된 변수로 스크립트 내에서 사용할 수 있지만, 함수 안에서는 사용할 수 없다.
-함수 안에서 정의된 변수는 함수 내에서만 사용할 수 있다.
-함수 안에서 전역으로 정의된 변수는 함수 밖에서는 사용할 수 없지만 매 사용 시마다 값이 저장되어 다음에 사용할 수 있다 ???
-함수 안에서 사용된 변수는 함수가 끝나면 삭제된다.
수퍼글로벌 전체 리스트
- $GLOBALS
- $_SERVER
- $_GET
- $_POST
- $COOKIES
- $_FILES
- $_ENV
- $_REQUEST
- $_SESSION
Operation(연산자)
대부분 C, Java랑 비슷하고 틀린부분만 정리
-문자열 연산자 '.' : 문자열을 앞뒤로 붙여서 새로운 문자열을 만든다.
ex)
$a = "Bob's";
$b = 'Auto Parts';
$result = $a.$b;
결과 $result에 저장된 값은 "Bob's Auto Parts"이다.
-산술 연산자
: 산술 연산자의 operand(피연산자)는 정수와 실수형으로만 쓰일 수 있다. 만약 문자열로 산술연산을 시도한면 문자열을 숫자로 바꾸어서 실행한다. 문자열에 "e"나 "E"가 들어있다면 실수형으로 변화 한다. 그 외에는 정수형으로 변환. PHP는 문자열 처음에서 숫자를 찾아서 그것을 값으로 인식하는데, 만약에 문자열에 숫자가 없다면 문자열의 값은 0이 된다.
- 참조 연산자(Reference)
: C의 &연산자와 같음..
ex) $a = 5
$b = $a; --> $a, $b 서로 다른 메모리 영역을 가진다.
$a = 5;
$b = &a;
&b = 7 // $a, $b 서로 같은 메모리영역을 가진다 즉 $a, $b가 7
unset($a) : 서로의 참조를 다르게 한다 (관계를 떼어놓을 수 있다)
- 비교연산자(Comparison Operatiors)
identical operator (===): 두 피연산자가 값이 같고 같은형일 때만 true를 리턴한다.
Not Identical (!==) : != 와는 다르다
Not Equal (<>) : 같지 않다. (!=) 와 같이 동일한 의미로 쓰인다.
- 에러 억제 연산자(error suppression operator) : @
:'@'은어떠한 표현식에도 쓸수 있다.
ex) $a = @(57/0)
'@'가 없다면 위 문장은 "0으로 나누기"에 의한 에러가 발생하지만'@'를 앞에 써주어서 에러는 무시하고 넘어간다. 만약 이런 방식으로 억제한다면 에러를 처리하는 코드를 작성해야 한다. 만약 PHP에서 track_error를 설정해 놓았다면 에러메시지를 전역변수인 $PHP_erromsg에 저장한다.
- 실행 연산자(execution operation)
: '`' 와 '`'로 이루어진 한 쌍의 연산자로 '`'는 홑따옴표(')와는 다른 키보드 ~아래에 있다.
PHP에서 서버의 커맨드 라인에서 실행하고 싶은 것이 있다면 `` 사이에 명령어를 쓰면된다.
그러면 ``의결과값이 표현식의 리턴값이 된다.
EX)
유닉스 환경
@out = `ls -la`;
echo '<pre>'.$out.'</pre>';
그러면 시 디렉토리의 파일 리스트가 보이게 된다.
- 배열 연산자
+ | $a + $b | $a와 $b가 가지고 있는 모든값을 반환한다(합집합)
== : $a, $b가 같은 요소를 가지고 있으면 true
=== | $a, $b가 같은 요소를 같은 순서로 가지고 있으면 true
!=
<>
!==
변수와 관련된 함수
-변수의 데이터 형을 검사하고 설정하기
string gettype(mixed var);
: 'boolean", "integer", "double", "string", "array", "object", "resource", 혹은 NULL을 반환한다. 표준 데이터 형이 아니면 "unknown"을 반환
bool settype(mixed var, string type);
■ is_array()
■ is_double(), is_float(), is_real() (모두 같은 함수)
■ is_long(), is_int(), is_integer() (모두 같은 함수)
■ is_string()
■ is_object()
■ is_null()
■ is_scalar() - 변수가 스칼라 변수인지 확인한다. 즉 정수형, 불리어형, 문자열이나 실수형인지 확인한다.
■ is_numeric() - 변수가 숫자나 혹은 숫자 문자열인지 확인한다.
■ is_callable() - 변수에 저장된 값이 호출할 수 있는 함수의 이름인지 확인한다.
- 변수 상태 검사
boolean isset(mixed var);
: 이 함수는 변수의 이름을 인자로 받아서 만약 이 변수가 존재한다면 true를 반환한다.
, 로 연결된 변수들을 주면 모든 변수가 존재해야 true를 반환
boolean unset(mixed var);
: 인자로 받은 변수의존재 자체를 없애고 true를 반환한다.
empty(mixed var);
: 변수가 존재하고, 비어 있지 않으며, 0이 아닌값을 가지고 있다면 true를 리턴
- 변수형 변환
int intval(mixed var[, int base]); base :진수 (10, 2, 16)
float floatval(mixed var);
string strval(mixed var);
== 제어문 ==
대부분 C와 비슷하지만, 틀린점만 요약하면
1. else if --> elseif 와 같이 붙여 쓸 수도 있다.
2. 루프를 빠져나갈때 'continue', 'break' 이외에 'exit' 라는 제어문이 있다.
'exit' : 루프를빠져나가 PHP 스크립트를 완전히 끝낸다.
3. 대체 제어 구조
{ } 로 구역을 정하는 것이 아니라
'{' 대신에 ':' 를 쓰고,
'}' 대신에 사용한 제어구조에 따라, endif, endswitch, endwhile, endfor, endforeach를 쓸수있다.
ex)
if( $totalqty == 0 )
{
echo 'You did not ... ';
exit;
}
를 아래와 같이 쓸수 있다.
if( $totalqty == 0 ) :
echo 'You did not ... ';
exit;
endif
4. declare
declare (directive)
{
// block
}
이 구조는 코드 블록에서 실행 지침(execution directive)를 설정하기 위해 사용된다.
단 하나의 실행 지침인 tricks 만이 구현되어있는데 tricks=n이라는 방식으로 지침을 삽입할 수 있다. 코드 블록내에 있는 특정 함수 중 n개의 코드 행을 실행 시킬 수 있어 디버깅에 매우 유용한다.
출처 : PHP and MySQL Web Development 3rd Edition (정보문화사)