everyday com-eat
작성일
2022. 5. 25. 11:52
작성자
갱수터
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() - 전달받은 형식에 맞춰 날짜와 시간 정보를 문자열로 반환
더보기
d 날짜를 두 자리 숫자로 표현 00부터 31
D 요일을 세 개의 문자로 표현 Mon에서 Sun
j 날짜를 숫자로 표현 1부터 31
l(소문자 'L') 요일을 완전한 문자열로 표현 Sunday부터 Saturday
N 요일을 ISO-8601 숫자로 표현 (PHP 5.1.0에서 추가됨) 1(월요일)부터 7(일요일)
S 날짜 뒤에 영어 서수를 붙임. st, nd, rd, th, j
w 요일을 숫자로 표현 0(일요일)부터 6(토요일)
z 일 년 중 몇 번째 날인지를 숫자로 표현 0부터 365
W 일 년 중 몇 번째 주인지를 숫자로 표현(PHP 4.1.0에서 추가됨) 42(그 해의 42번째 주)
F 월을 완전한 문자열로 표현 January에서 December
m 월을 두 자리 숫자로 표현 01부터 12
M 월의 축약형을 세 개의 문자로 표현 Jan에서 Dec
n 월을 숫자로 표현 1부터 12
t 해당 월의 총일 수를 숫자로 표현 28부터 31
L 윤년 여부를 표현 윤년엔 1, 그 외엔 0
o ISO-8601 연도값으로 Y값과 같은 값을 나타냄.
하지만, W값이 이전 해나 다음 해에 포함되면, 연도를 이 값으로 사용
(PHP 5.1.0에서 추가됨)
1999나 2003
Y 연도를 완전한 네 자리 숫자로 표현 1999나 2003
y 연도를 두 자리 숫자로 표현 99나 03
a 오전과 오후의 소문자를 표현 am 또는 pm
A 오전과 오후의 대문자를 표현 AM 또는 PM
B 견본 인터넷 시간을 표현 000에서 999
g 12시간 형식으로 시간을 표현 1부터 12
G 24시간 형식으로 시간을 표현 0부터 23
h 12시간 형식 시간을 두 자리 숫자로 표현 01부터 12
H 24시간 형식 시간을 두 자리 숫자로 표현 00부터 23
i 분을 두 자리 숫자로 표현 00부터 59
s 초를 두 자리 숫자로 표현 00부터 59
u 초를 마이크로초로 표현 (PHP 5.2.2에서 추가됨) 54321
e 시간대(timezone) 식별자를 표현 (PHP 5.1.0에서 추가됨) UTC, GMT
I(대문자 i) 서머타임 적용 여부를 표현 서머타임이면 1, 아니면 0
O 그리니치 시각(GMT)과 시차를 표현 +0200
P 시와 분 사이에 콜론이 들어가는 그리니치 시각(GMT)과 시차를 표현 +02:00
T 시간대(timezone)를 나타내는 축약어 EST, MDT
Z 시간대(timezone)를 나타내는 오프셋 초를 표현
UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수로 표현
-43200부터 50400
c ISO-8601 형식의 날짜를 표현함. (PHP 5에서 추가됨) 2004-02-12T15:19:21+00:00
r RFC 2822 형식의 날짜를 표현 Thu, 21 Dec 2000 16:01:07 +0200
U 타임스탬프를 표현 time() 참조
mktime() - 시,분,초,월,일,연도를 인수로 전달받아서 해당 날짜와 시간을 나타내는 타임스탬프 반환
- 오른쪽부터 차례대로 생략 가능
- 인수 전달하지 않을 시 현재 날짜와 시간에 대한 타임스탬프 값 반환
time() - 인수를 전달받지 않고, 현재 날짜와 시간에 대한 타임스탬프 반환
getdate() - 인수로 전달받은 타임스탬프에 해당하는 정보를 연관 배열의 형태로 반환
- 인수를 전달하지 않으면 현재 날짜와 시간의 타임스탬프 반환
더보기
seconds 해당 타임스탬프에 해당하는 초를 숫자로 저장
minutes 해당 타임스탬프에 해당하는 분을 숫자로 저장
hours 해당 타임스탬프에 해당하는 시간을 숫자로 저장
mday 해당 타임스탬프에 해당하는 일을 숫자로 저장
wday 해당 타임스탬프에 해당하는 요일을 숫자로 저장
mon 해당 타임스탬프에 해당하는 월을 숫자로 저장
year 해당 타임스탬프에 해당하는 연도를 네 자리의 숫자로 저장
yday 해당 타임스탬프에 해당하는 일자가 일 년 중 몇 번째 날인지를 숫자로 저장
weekday 해당 타임스탬프에 해당하는 요일을 완전한 문자열로 저장
month 해당 타임스탬프에 해당하는 월을 완전한 문자열로 저장
0 타임스탬프값을 저장
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