일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공부
- async
- Kotlin
- javascript
- 리사이클러뷰
- 가상회선교환
- equalityFn
- merge
- 리액트를 다루는 기술
- list.map
- react
- useCallback
- Git
- 리덕스
- createPortal
- await
- redux
- list
- hot Reloading
- CSS
- pull
- useState
- 컬러구성
- 자동반영
- 비동기처리
- typescript
- php문법
- 웹
- 리액트
- rebase
- Today
- Total
공부블로그
PHP 문법 본문
기초문법
php코드는 웹 페이지의 어느 부분에나 위치할 수 있다.
php파서가 php코드를 인식하기 위해 시작과 끝을 알려줘야 한다.<? php … ?>
즉, <?= …?> 은 출력용 태그라고 생각하자
마지막 ; (세미콜론)
주석 : //
출력
echo - 문자열 여러개 출력, 리턴값 X / print - 함수처럼 사용, 문자열 하나 출력, 항상 리턴값 1
변수
- 지역 변수 : 함수 내부에서 선언된 변수는 오직 함수 내부에서만 접근, 함수 호출이 종료되면 메모리에서 제거되므로 함수 밖에서 접근 불가
- 전역 변수 : 함수 밖에서 선언, 접근 함수 내부에서 전역 변수를 사용하고 싶다면 global키워드를 사용
- 정적 변수 : 함수의 호출이 종료되더라도 메모리 상에서 사라지지 않으므로 생성과 소멸을 반복하지 않고 함수 안에서 값이 공유된다.
+ $GLOBALS[index] 배열 : php는 모든 전역 변수를 $GLOBALS배열에 저장
전역 변수의 이름을 사용하면 해당 전역 변수의 값에 접근 가능
- define(상수이름, 상숫값, 대소문자구분안함) / 기본값 false
- 마법 상수 : 용도가 변경되는 8개의 마법 상수
기본 타입
- boolean : false로 인식되는 값 : 정수 0, 실수 0.0, 빈 문자열과 문자열 ‘0’, 빈 배열, Null
- 정수 integer
- 실수 float : 최대 범위를 넘으면 INF
- 문자열 string : “ 또는 ‘로 감싸서 표현 / strlen()는 문자열 길이 반환
- 배열 array : 한 쌍의 키와 값으로 이루어진 맵으로 구성되는 순서가 있는 집합, 키값으로 정수와 문자열만 가능하고 하나의 배열의 두 가지 키값을 사용 가능
만약 정수와 문자열 이외에 다른 타입의 값을 키값으로 사용하면, 내부적으로 다음과 같이 타입 변환
- 불리언은 true는 1로, false는 0으로 자동 타입 변환됩니다.
- 유효한 숫자로만 이루어진 문자열은 정수나 실수로 자동 타입 변환됩니다.
- 실수는 소수 부분이 제거되고, 정수로 자동 타입 변환됩니다.
- NULL은 빈 문자열("")로 자동 타입 변환됩니다.
- 배열과 객체는 배열의 키값으로 사용할 수 없습니다.
- 같은 키값으로 맵을 선언하면 맨 마지막에 선언된 값만 저장
- 객체 object : 클래스의 인스턴스를 저장하기 위한 타입 / 프로퍼티와 메소드를 포함한다.
- 리소스 resource
- NULL : 아직 어떠한 값도 대입되지 않은 변수
화살표의 의미? -> 와 => 의 차이점
-> : 객체 범위 내에서 객체에 접근하기 위해 사용
=> : 배열의 키, 값을 할당할 때 사용
<?php
$arr1 = array("key1"=>"value1", "key2"=>"value2"); // 키 => 값
echo arr1["key1"]; // value1
echo arr1["key2"]; // value2
$obj = (object)$arr1; // array를 object로 형변환하여 사용
echo obj -> key1; // value1
echo obj -> key2; // value2
?>
타입 변환
- var_dump 함수 : 변수의 정보를 출력한다.
예시 결과값 ) int(1) : 정수이고, 값은 1입니다.
array(2) { [0]=> int(1) [1]=> float(1.1) } : 2개의 값을 가진 배열이고, 첫번째 값은 정수 1, 두번째 값은 실수 1.1입니다.
- 자동 타입 변환 : php는 대입하는 값에 따라 타입이 자동으로 결정됨 (동적 타입)
- 강제 타입 변환 : 타입캐스트 연산자 () 사용 ex) $var_02 = (boolean)$var_01
- 가변 변수 variable variables : 변수의 이름도 동적으로 변경, 해당 변수의 값을 또 다른 변수의 이름으로 취급한다.
ex) $PHP = “HTML”; $HTML = “CSS”
echo $PHP; // HTML
echo $$PHP; // → echo $HTML → CSS
연산자
산술 연산자 : +(덧셈) -(뺄셈) *(곱셈) /(나누기) %(나머지값)
조건문
if( ) {
}
elseif( ){
}
else { //한문장만 실행하면 중괄호 생략가능
}
배열
배열의 요소 : 맵
- 1차 배열 선언방법 : $배열 이름 = array() / []
- 배열 요소 참조 : $배열이름[인덱스]
- 요소 추가 : $arr[0] = “apple”;
- 배열 생성과 동시에 초기화 : $arr = array("apple", "banana", "orange");
- 배열의 홀(hole)
php에서는 배열의 특정 인덱스에만 배열 요소를 추가할 수 있다.
$arr = array();
$arr[10] = “banan”; // index 0 ~ 9까지는 다 null (= 배열의 hole)
var_dump(isset($arr[0])); // NULL
count()함수를 사용한 for문에서는 배열의 hole을 포함하지 않아서 정확한 배열의 길이를 구할 수 없다.
따라서 정확한 배열에 접근하고 싶을 때는 forEach문을 사용한다.
연관 배열
배열의 인덱스를 정수뿐만이 아닌 다양한 타입으로 설정한 배열
- 배열 생성 및 초기화 : $배열이름 = array("키1" => 값1, "키2" => 값2, ...); / ["키1" => 값1, "키2" => 값2, ...]
배열 요소 추가 시, 해당 배열이 존재하지 않으면 생성한 후에 요소가 추가된다.
- 루프를 이용한 연관 배열로의 접근 (인덱스가 숫자가 아니므로 for문을 사용하여 접근X)
$array = array("apple" => 1000, "banana" => 2000, "orange" => 1500);
• foreach문 : 요소의 키값과 요소의 값을 변수에 따로 저장하여 루프 내에서 사용
foreach($array as $key => $value){ echo $key.” ”.$value”<br>”; }
• each( )함수 사용 : 배열 커서가 현재 가리키고 있는 배열 요소를 반환하고, 다음 배열 요소를 가리키도록 한다. 가리키는 요소의 다음 요소가 배열의 마지막이면 동작X
while($element = each($array)) { echo $element['key']." ".$element['value']."<br>"; }
함수
- 선언방법 : function 함수이름( 매개변수1, 매개변수2,... ) { 함수가 호출 되었을 때 실행될 코드; }
( 함수 이름은 대소문자 구분하지 않는다. 문자와 숫자, _만 사용가능 )
- 호출 : 모든 함수와 클래스는 전역 범위를 가진다.
- 값 반환 : 반환값을 원하는 타입으로 반환받을 수 있도록, 반환값의 타입을 지정할 수 있고 그 강도도 정할 수 있다.
- 약한 강도 : function sum($x, $y) : float // 반환값의 타입을 float 타입으로 설정함. { return $x + $y; }
- 강한 강도 : declare(strict_types = 1); // strict 모드로 설정함.
Form 처리
HTML form 요소가 전송한 데이터를 처리하기 위해 서버 사이드 스크립트 언어인 PHP를 사용한다.
<html>
<body> <!—action 속성값에는 form 요소를 처리할 서버의 PHP 스크립트 파일 주소를 명시—>
<form action="request.php" method="post">
이름 : <input type="text" name="name"><br> → $name = $_POST["name"];
이메일 : <input type="text" name="email"><br> $email = $_POST[“email”];
<input type="submit">
</form>
</body>
</html>
+ $_REQUEST : an associative array that by default contains the contents of $_GET, $_POST and $_COOKIE.
'공부하기' 카테고리의 다른 글
프로그래머스 - [ 개인정보 수집 유효기간 ] (1) | 2023.04.18 |
---|---|
네트워크 통신 방식 - 회선교환과 패킷교환 (0) | 2023.03.15 |
Next.js 자동 반영 hot reload 안될 때 (0) | 2022.12.20 |
list.map( ) (0) | 2022.12.20 |
useSelector 최적화 (0) | 2022.12.13 |