개발/PHP

4. 함수

희묭 2024. 3. 29. 09:24

기본구조

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n) : string
{
    echo "Example function.\n";
    return $retval;
}

 

인자

<?php
function takes_many_args(
    $first_arg,
    $second_arg,
    $a_very_long_argument_name,
    $arg_with_default = 5,
    $again = 'a default string', // 8버전부터 후행쉼표 사용가능
)
{
    // ...
}

기본구조는 위와같다

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);

배열은 위처럼 받을수 있다

 

반환

<?php
function small_numbers()
{
    return [0, 1, 2];
}
[$zero, $one, $two] = small_numbers();

// 7.1 부터 아래처럼 사용가능
list($zero, $one, $two) = small_numbers();

 

 

VOID vs NEVER

<?php

function sayHello(string $name): void
{
    echo "Hello, $name";
}

$return = sayHello("John"); // result: "Hello, John"
var_dump($return);

void 는 NULL 을 리턴한다

<?php

function sayHello(string $name): never
{
    echo "Hello, $name";
    exit();
}

$return = sayHello("John"); // result: "Hello, John"
$return = sayHello("John"); // result: dont proc

never 는 익셉션을 주로 다루며 해당 함수의 리턴값이 없음에는 상위스택의 흐름도 진행되지 않는다

MIXED

<?php

function sayHello(mixed $name): mixed
{
    return $name;
}

echo sayHello(1);
echo sayHello("John");

여러 타입을 받을수 있으며 반환도 여러타입으로 가능하다

 

자주쓰는 내장함수

var_dump(TRUE);

변수, 상수 상세정보 조회

$name = "test";
unset($name);

변수 제거

$val = 1;
isset($val);    //false
empty($val);    //true

변수 존재여부 체크 

var_dump(strlen('null'));

문자열 길이

var_dump(str_contains("foobar", 'foo'));

문자열 포함

'개발 > PHP' 카테고리의 다른 글

Alpine.js 한방정리  (0) 2024.04.11
Livewire 한방 정리  (0) 2024.04.08
3. 상수와 변수  (0) 2024.03.29
2. 타입  (0) 2024.03.28
1. 기본문법  (0) 2024.03.28