PHP 내장함수 & 함수

서린·2024년 3월 18일
0

greenstudy

목록 보기
22/44
post-thumbnail

내장함수란?

  • 설치 패키지에 존재하는 PHP의 사전 정의된 함수

trim(문자열)

  • 문자열의 공백을 제거해줌
$str = "   홍길동   ";
echo trim($str);

출력해보면 공백이 제거된채로 "홍길동"이라고만 나온다 rtrim이나 ltrim으로 하면 오른쪽 공백이나 왼쪽공백 제거가 가능하지만 많이쓰진 않는다


strtoupper(문자열)

  • 문자열(영어)이 대문자로 출력
echo strtoupper("asdffe")

결과 => "ASDFFE"


strtoupper(문자열)

  • 문자열(영어)이 소문자로 출력
echo strtoupper("asdDEE")

결과 => "ASDDEE"


str_replace(변경 할 문자부분, 변경 할 문자, 원본 문자)

  • 특정문자를 치환해준다
echo str_replace("cd","","abcdefg");

출력 => "abefg"


mb_substr(문자열, 시작위치, 출력할 개수)

  • 문자열을 시작위치에서 종료위치를 잘라서 반환
$str = "홍길동갑순이";
echo mp_substr($str, 1, 4)"\n";
echo mp_substr($str,2);

출력 => 길동갑순
동갑순이


mb_strpos(대상 문자열, 검색할 문자열)

  • 검색할 문자열이 있는 위치(int)가 반환
$str = "나는 홍길동 입니다.";
echo mp_strpos($str,"홍");

결과 => 3
(만약 같은글자가 있는경우 왼쪽에서 젤 첫번째를 알려준다)

  • if문으로 확인하기
if(mb_strpos($str,"ㄴ")){
    echo "포함됨";
}
else {
    echo "없음"."\n";
}

결과 => 없음


sprintf(포맷문자열, 대입 문자열1, 대입문자열2...)

  • 형식화 된 문자열을 반환
$base_msg = "%s이/가 틀렸습니다.";
$print_msg = sprintf($base_msg, "비밀번호");
echo $print_msg."\n"; 

결과 => 비밀번호이/가 틀렸습니다.


isset(변수)

  • 변수의 설정 여부 확인 true/false 리턴
$ans1 = "";
$ans2 = NULL;
$ans3 = 0;
$ans4 = [];
var_dump(isset($ans1), isset($ans2), isset($ans3), isset($ans4), empty($ans5));

결과 => bool(true) bool(false) bool(true) bool(true) bool(true)


empty(변수)

  • 변수의 값이 비어있는지 확인, true/false 리턴
var_dump(empty($ans1), empty($ans2), empty($ans3), empty($ans4),empty($ans5));

결과 => bool(true) bool(true) bool(true) bool(true) bool(true)


gettype(변수)

  • 데이터 타입을 문자열로 반환
$str1 = "abc";
$int1 = 5;
$arr1 = [];
$double1 = 1.4;
$boo = true;
$null1 = NULL;
$obj = new DateTime();
var_dump(gettype($str1), gettype($int1), gettype($arr1), gettype($double1), gettype($boo),gettype($null1),gettype($obj));

결과 => string(6) "string" string(7) "integer" string(5) "array" string(6) "double" string(7) "boolean" string(4) "NULL" string(6) "object"


settype(변수)

  • 변수의 데이터 형을 변환, 원본 변수 자체가 변경되므로 쓸때 주의 해야함
$i = 3;
$i2 =(string)$i;
var_dump($i, $i2);

위에 예제를 보면 $i가 글자로 변하진 않는다

$i = 3;
$i2 = settype($i, "string"); // 출력된걸 보면 변환에 성공했기때문에 bool true가 나옴
var_dump($i, $i2); 

위에 예제로 보면 변환된걸 확인할수있다


time()

  • 유닉스 타임스템프
echo time();
echo time()-86400; // 하루전 날짜 획득

결과 => 1710750367 1710663967


date(포맷형식, 타임스탬프값)

  • 타임스탬프 값을 날짜 포맷형식으로 변환해서 반환
echo date("Y-m-d H:i:s", time()); // 2000-01-01 13:50:06 한달전은 계산 잘 안될수도있음 

결과 => 2024-03-18 17:26:07


ceil(숫자), round(숫자), floor(숫자)

  • 순서대로 올림, 반올림, 내림 하여 반환
var_dump(ceil(1.4), round(2.5), floor(1.9));

결과 => 2 3 1


random_int(시작 값, 마지막 값)

  • 시작값 ~ 마지막값 범위의 랜덤한 숫자를 반환
echo random_int(1, 10);

결과 => 출력할때마다 매번 1~10사이의 랜덤숫자가 출력된다


함수(function)란?

  • 개발자가 필요로 하는 기능을 가진 함수가 없다면, 직접 함수를 만들 수도 있습니다.

  • 이런 함수를 사용자 정의 함수라고 하며, 반복해서 수행해야 하는 작업이 있다면 함수로 만들어서 사용하는 것이 좋다

  • 예시

function my_sum($num1, $num2){ // $num1,2 :매개변수
    return $num1 + $num2; 
}
echo my_sum(32, 54); // 함수호출
  • 파라미터 default 설정
/**
 * 두 숫자를 더하는 함수
 * 
 * @param int $num1 더할 첫번째 숫자
 * @param int $num2 더할 두번째 숫자, default 10
 * @return int 합계
 */
function my_sum2(int $num1, int $num2 = 10){
    return $num1+ $num2;
}

$num2에는 10이라는 default값이 들어갔다 그리고 위에 주석으로 함수에 관한 설명을 적어두면 my_sum2란곳에 마우스를 올리면 두 숫자를 더하는 함수라고 설명이 나온다

function test(string $str){
    $str = "test()에서 변경"; // 이 $str은 이안에서 쓸수잇음
}

$str = "처음 정의"; // 이 $str은 전역 함수 위에꺼랑 아애 다른거
test($str); // 처음 정의
echo $str;  // 처음 정의

test란 함수 안에 있는 $str이랑 밖에 있는 $str이랑은 다른 별개라서 출력해보면 "처음 정의"라고 나온다 만약 안에 있는 함수를 밖에서 출력하고 싶다면

function test2(string $str){
    $str = "test2()에서 변경"; 
    return $str;
}

$str = test2($str);
echo $str;

이런식으로 하면 된다

  • 가변 길이 파라미터(데이터 타입은 배열)
function my_sum_all(...$numbers){
    print_r($numbers);
}
my_sum_all(3,5,2);

결과 =>
Array
(
[0] => 3
[1] => 5
[2] => 2
)
배열로 출력이 되고
만약 옛날 버전이라서 ...를 못쓴다면
$numbers = func_get_args(); 이거를 써주면 똑같이 된다

  • 예제
// 파라미터로 받은 모든 수를 더하는 함수를 만들어 주세요 
function my_sum_all2(...$numbers){
    $sum = 0; // 합계 저장용 변수, 합계를 저장하기 때문에 숫자 0으로 초기화

    // 파라미터 루프해서 값을 획득 후 더하기
   foreach($numbers as $val){
     $sum += $val ;
   }
   //합계리턴
   return $sum;
}
  • 참조 전달
function test_v($num) {
    $num = 3;
}

function test_r(&$num) { // & 참조전달로써 쓰겟다라는 의미 
    $num = 5;
}

$num = 0;
test_r($num);
echo $num;
  • 참조 변수
$a = 1;
$b = &$a;
$a = 3;

echo $b;

결과 => 3

profile
개발 일기 ( •̀ ω •́ )✧

0개의 댓글

관련 채용 정보