728x90
함수
function 함수이름(매개변수1, 매개변수2,...)
{
함수가 호출 되었을 때 실행될 코드;
}
매개변수
값 전달 방식
function increment($para)
{
$para++; // $value의 값을 복사하여 increment() 함수에 인수로 전달함.
echo $para;
}
$value = 1;
increment($value);
echo $value;
함수 안의 파라미터로 준 value는 2로 다시 전역변수를 출력하면 1로 나옴
참조 전달 방식
function increment(&$para)
{
$para++; // $value의 값을 복사하여 increment() 함수에 인수로 전달함.
echo $para;
}
$value = 1;
increment($value);
echo $value;
값 전달 방식과 달리 파라미터앞에 &를 붙여 직접 값을 변경할 수 있음
함수 안 , 밖 모두 2를 출력
디폴트 매개변수(default parameter)
function sum($value1, $value2 = 0, $value3 = 0)
- 디폴트 변수가 아닌 매개변수는 인수를 반드시 전달 받아야함
- 디폴트 변수는 전달받지 못하면 설정된 기본값을 사용
가변 길이 인수 목록
- 함수를 선언할 때 전달받을 인수의 개수를 미리 정하지 않고, 호출할 때마다 유동적으로 인수를 넘기는 기능
function sum(...$num) // PHP 5.6 이상
{
$sum = 0;
foreach($num as $n) {
$sum += $n;
}
return $sum;
}
echo sum(1,2,3,4,5);
조건 함수
$makefunc = true;
//func(); // 이 부분은 func() 함수가 선언되기 전이므로, 함수를 호출할 수 없습니다.
if($makefunc) {
function func()
{
echo "이제 함수를 사용할 수 있습니다";
}
func(); // 이 부분은 func() 함수가 선언되었으므로, 함수를 호출할 수 있습니다.
}
함수안의 함수
- php에서 모든 함수는 전역 함수이므로, 함수 내부에서 선언된 함수라도 해당 함수 외부에서 호출할 수 있다.
function out()
{
echo "아웃<br>";
function in()
{
echo "인<br>";
}
}
//in(); // 이 부분은 in() 함수가 선언되기 전이므로, 함수를 호출할 수 없습니다.
out();
in(); // 이 부분은 in() 함수가 선언되었으므로, 함수를 호출할 수 있습니다.
아웃
인
이라는 글자 출력
재귀함수(recursive function)
- 함수 내부에서 함수가 자기 자신을 또다시 호출하는 함수
- 무한루프 돌지않게 재귀 호출을 중단하도록 조건문 반드시 포함해야함
- 재귀 함수는 알고리즘이나 자료 구조에서 매우 중요함
- 재귀 함수를 사용하면 복잡한 문제도 매우 간단하게 논리적으로 접근하여 표현 가능
function factorial($num)
{
echo $num."<br>"; //4 , 3 , 2 , 1 출력
if($num > 1)
return $num * factorial($num - 1);
else
return 1;
}
echo factorial(4);
가변 함수(variable function)
- 변수를 사용하여 함수를 호출하는 것
- 변수 이름에 괄호를 붙이면 해당 변수의 값과 같은 이름을 가지는 함수 호출
function first()
{
echo "first() 함수입니다.<br><br>";
}
function second($para)
{
echo "second() 함수입니다.<br>";
echo "함수 호출 시 전달받은 인수의 값은 {$para}입니다.";
}
$func = "first";
$func(); // first() 함수를 호출함.
$func = "second"
$func(20); // second() 함수를 호출함.
내장 함수
변수
gettype() | - 전달받은 변수의 타입 변환 - float 형의 경우 "float"가 아닌 "double"을 반환 - 표준타입이 아닌 경우 "unknown type" 반환 - 내부적으로 문자열을 비교하기 때문에 실행 속도가 느림 |
settype() | - 전달받은 변수의 타입 변경 - boolean, integer, string, array, object 사용 가능(php 4.2.0 부터 float과 null타입도 가능) - 변경 성공 시 true 반환, 실패 시 false 반환 |
is_타입() | - 전달받은 변수가 타입인지를 확인함 - is_scalar() 함수에서 스칼라값은 integer, float, string, boolean 타입의 값을 의미함 |
isset() | - 전달받은 변수가 선언되어 있는지 검사 - 선언된 변수가 존재하면 true, 존재하지 않으면 false 반환 |
unset() | - 전달받은 변수 제거 |
empty() | - 전달받은 변수가 비어있는지 검사 - 변수 존재, 해당 변수가 비어있지 않으면 false 반환 |
타입val() | - 전달받은 변수에 해당하는 타입값 반환 - int, float, double,str 가능 |
배열
array() | - 배열 생성 |
count(), sizeof() | - 배열에 저장된 배열 요소의 개수 반환 |
array_count_values() | - 배열의 요소 값을 모두 확인하여 해당 값이 몇번 등장하는지 확인 - 배열 요소의 값을 키로 하고, 해당 값의 등장 빈도를 값으로하는 연관배열 반환 |
current(), pos() | - 배열 포인터가 현재 가리키고 있는 요소 반환 |
next() | - 배열 포인터르 앞으로 하나 이동시킨 후, 해당 요소 반환 |
prev() | - 배열 포인터를 뒤로 하나 이동시킨 후, 해당 요소 반환 |
each() | - 배열 포인터가 현재 가리키고 있는 요소의 키와 값을 연관 배열로 반환, 배열 포인터를 앞으로 하나 이동 |
reset() | - 배열 포인터가 첫번째 배열 요소를 가리키도록 한 뒤, 해당 요소의 값 반환 |
end() | - 배열 포인터가 마지막 배열 요소를 가리키도록 한 뒤, 해당 요소의 값 반환 |
sort() rsort() - 내림차순 |
- 배열 요소들을 정렬 기준에 맞게 정렬 - 두 번째 인수로 배열 요소를 정렬할 기준 전달 > sort_numeric(숫자), sort_string(문자열) - 정렬 기준 전달하지 않으면, 배열 요소들의 타입을 변경하지 않고 그대로 비교 - 대소문자 구별, 대문자가 소문자 앞쪽으로 정렬 - 정렬 성공 시 true, 실패 시 false 반환 |
ksort(), krsort() | - 각 요소의 키를 기준으로 정렬 |
asort(), arsort() | - 각 요소의 값을 기준으로 정렬 |
shuffle() | - 배열 요소를 섞은 뒤 무작위 재배치 |
array_reverse() | - 전달받은 배열의 순서를 역순으로 변경한 새로운 배열 반환 - 원본 배열에 영향을 주지 않음 |
문자열
strcmp() | - 전달받은 두 개의 문자열 비교 - 첫번째 인수의 문자열이 두번째 문장려보다 크면 양수, 작으면 음수 반환 - 두 문자열이 같으면 0 반환 - 대소문자 구분 > strncasecmp() 함수 사용시 대소문자 구분X - strnatcmp(), strnatsasecmpt() 함수는 영숫자 순으로 문자열 비교 |
strstr(), strchr() | - 해당 문자열에서 전달받은 문자열과 처음으로 일치하는 부분을 찾아, 처음으로 일치하는 부분을 포함한 이후의 모든 문자를 반환 - 일치하는 부분이 존재하지 않으면 false 반환 - stristr() > 대소문자 구분하지 않음 |
strchrr() | - 해당 문자열에서 전달받은 문자열과 마지막으로 일치하는 부분을 찾아, 마지막으로 일치하는 부분을 포함한 이후의 모든 문자를 반환 - 일치하는 부분이 존재하지 않으면 false 반환 |
strpos() | - 해당 문자열에서 전달받은 문자열과 처음으로 일치하는 부분의 시작 인덱스 반환 |
strppos() | - 해당 문자열에서 전달받은 문자열과 마지막으로 일치하는 부분의 시작 인덱스 반환 |
substr(문자열,인덱스,길이) | - 해당 문자열에서 특정 인덱스부터 전달받은 길이 만큼의 일부분을 추출하여 반환 - 인덱스가 양수인 경우엔 해당 인덱스부터 해당 문자열의 끝까지, 음수라면 해당 문자열 끝부터 전달받은 음수의 절댓값만큼의 문자열 반환 - 길이가 양수인 경우 반환할 문자열의 길이를 나타내고, 음수라면 특정 인덱스부터 문자열 끝부터 전달받은 음수의 절댓값까지 문자열 반환 |
strtolower() | - 문자열의 모든 문자를 소문자로 바꿔줌 |
strtoupper() | - 문자열의 모든 문자를 대문자로 바꿔줌 |
ucfirst() | - 문자열의 첫 번째 문자만을 대문자로 바꿔줌 |
ucwords() | - 문자열에서 단어별로 첫 번째 문자만을 대문자로 바꿔줌 |
explode(기준 문자, 문자열) | - 특정 문자를 기준으로 전달받은 문자열을 나누어서 하나의 배열로 반환 |
implode(기준 문자, 문자열) , join() |
- 전달받은 배열의 각 요소를 특정 문자를 사용하여 하나의 합쳐진 문자열로 반환 |
strtok(문자열, 기준 문자) | - 전달받은 문자열을 특정 문자를 기준으로 토큰화 - 해당 문자열을 한 번에 모두 나누지 않고, 한 번에 하나씩만을 토큰화 - 첫 번째는 인수로 문자열과 기준문자를 둘 다 줘야하지만 , 두번째부턴 기준 문자만 전달하면 자동으로 두번째 토큰을 반환 |
str_replace(찾을 문자, 바꿀 문자, 문자열) | - 해당 문자열에서 전달받은 문자열을 모두 찾은 후에, 찾은 문자열을 대체 문자열로 교체 |
substr_replace(문자열, 바꿀 문자, 인덱스, (길이)) | - 해당 문자열에서 특정 위치의 문자들을 대체 문자열로 교체 - 전달받은 인덱스가 0 또는 양수인 경우에는 해당 문자열의 앞에서부터 , 음수인 경우에는 뒤에서부터 시작 인덱스를 찾음 - 선택 사항으로 해당 문자열에서 교체할 부분의 길이를 네번째 인수로 전달받을 수 있음 - 길이를 전달하지 않으면 시작 인덱스 부터 해당 문자열의 끝까지 모두 대체 |
ltrim() | - 문자열 앞부분에 있는 공백 제거 |
rtrim(), chop() | - 문자열 끝부분에 있는 공백 제거 |
trimg() | - 문자열의 처음과 끝부분에 있는 공백 모두 제거 |
날짜와 시간
date() | - 전달받은 형식에 맞춰 날짜와 시간 정보를 문자열로 반환 더보기
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mktime() | - 시,분,초,월,일,연도를 인수로 전달받아서 해당 날짜와 시간을 나타내는 타임스탬프 반환 - 오른쪽부터 차례대로 생략 가능 - 인수 전달하지 않을 시 현재 날짜와 시간에 대한 타임스탬프 값 반환 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
time() | - 인수를 전달받지 않고, 현재 날짜와 시간에 대한 타임스탬프 반환 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getdate() | - 인수로 전달받은 타임스탬프에 해당하는 정보를 연관 배열의 형태로 반환 - 인수를 전달하지 않으면 현재 날짜와 시간의 타임스탬프 반환 더보기
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
date_default_timezone_set() | - 해당 스크립트에서 사용되는 날짜와 시간에 관련된 모든 함수에서 사용될 타임 존 설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
date_default_timezone_get() | - 현재 설정 되어 있는 타임 존 반환 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
checkdate(월, 일, 연도) | - 전달받은 날짜의 유효성 검사 |
수학
max() | - 전달받은 수 중에서 가장 큰 수 반환 |
min() | - 전달받은 수 중에서 가장 작은 수 반환 |
floor() | - 인수로 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수 반환 - 올림 |
ceil() | - 인수로 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수 - 내림 |
round() | - 소수의 반올림 |
pow(수, 거듭제곱 수) | - 전달받은 수의 거듭제곱 반환 |
exp(지수) | - 인수로 지수를 전달받아, e의 거듭제곱 계산하여 반환 |
log() | - 전달받은 수의 자연로그 값을 계산하여 반환 |
sin(), cos(), tan() | - sin, cos, tan 값 반환 |
abs() | - 절댓값 |
rand() | - 0보다 크거나 같고 getrandmax() 함수의 반환값보다 작은 하나의 정수를 무작위로 생성하여 반환 - getrandmax() > rand() 함수로 생성할 수 있는 정수의 최댓값 |
출처 : TCP School
'{ "Hello World!" }; > PHP' 카테고리의 다른 글
(php) PHPMailer 메일 전송 (지메일, Composer 설치, openssl 오류) (0) | 2022.06.22 |
---|---|
(php) 파일업로드 및 파일 다운로드 (0) | 2022.06.16 |
php/ 식단 사이트 구조 잡기 (0) | 2022.05.26 |
(php) 기초 (0) | 2022.05.24 |
(php) 이클립스 개발 환경 구축하기 (0) | 2022.05.23 |