>  기사  >  백엔드 개발  >  PHP 학습 요약 기능

PHP 학습 요약 기능

藏色散人
藏色散人앞으로
2019-12-30 13:45:522830검색

함수 정의

유효한 함수 이름은 문자나 밑줄로 시작하고 그 뒤에 문자, 숫자, 밑줄이 옵니다.

함수 이름은 다음과 같습니다. 구분하지 마십시오(사실 PHP의 함수 이름, 메소드 이름 및 클래스 이름은 대소문자를 구분할 수 있습니다).

함수를 조건부로 호출하지 않는 한 함수를 호출하기 전에 정의할 필요는 없습니다.

PHP는 함수 오버로딩을 지원하지 않으며, 선언된 함수를 정의 해제하거나 재정의하는 것이 불가능합니다.

<?php
Test(); # function test.
function test()
{
    echo &#39;function test.&#39;;
}

함수 매개변수

1. 값 전달

in 함수 내부적으로 매개변수 값을 변경해도 함수 외부의 매개변수 값에는 영향을 미치지 않습니다:

<?php
$i = 1;
add($i);
echo $i; # 1
function add($test)
{
    $test++;
}

2. 참조로 전달

Keep 매개변수의 값은 함수 내부와 외부에서 일관됩니다. 참조로 전달하려면 함수 정의의 매개변수 앞에 & 기호를 추가하면 됩니다:

<?php
$i = 1;
add($i);
echo $i; # 2
function add(&$test)
{
    $test++;
}

3. 매개변수의 가변 개수

#🎜 🎜#PHP는 다양한 수의 매개변수를 지원합니다. 함수를 정의할 때 나열된 매개변수는 실제로 최소 매개변수일 뿐입니다. 호출 시 여러 매개변수가 허용되지만 추가 매개변수는 무시됩니다.

function add($a, $b) 
{
    return $a + $b;
}
echo add(1,2,5); # 3

PHP 5.5 및 이전 버전에서 처리해야 하는 경우 매개변수 개수가 불확실한 경우 다음 함수를 사용할 수 있습니다.

func_num_args() — 함수에 전달된 매개변수 개수를 반환합니다.

func_get_arg() — 지정된 매개변수를 반환합니다. # 🎜🎜#

func_get_args() — 매개변수 목록을 배열로 반환

<?php
function func() 
{
    $argc = func_num_args();
    $argv = func_get_args();
    switch ($argc) {
       case 0:
           echo "没有参数。<br />";
           break;
       case 1:
           echo "只有1个参数。它是:" . func_get_arg(0) . "。<br />";
           break;
       case 2:
           echo "有2个参数。它们是:" . func_get_arg(0) . "," . func_get_arg(1) . "。<br />";
           break;
       default:
           echo "超过2个参数。它们是:";
           print_r($argv);
           break;
    }
}
func();          # 没有参数。
func(1);         # 只有1个参数。它是:1。
func(1,2);       # 有2个参数。它们是:1,2。
func(1,2,3,4,5); # 超过2个参数。它们是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

PHP 5.6 이상에서는 가변 개수의 변수가 다음으로 구현됩니다... 구문 매개변수 목록: #🎜 🎜#

function sum(...$numbers) 
{
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4); # 10

Variable function

PHP는 변수 함수 개념을 지원합니다. 변수 이름 뒤에 괄호가 있으면 PHP는 다음과 같은 함수를 찾습니다. 변수 값과 동일한 이름을 입력하고 실행해 보세요:

<?php
function foo() 
{
    echo "In foo()";
}
$func = &#39;foo&#39;;
$func(); # In foo()

참고: 변수 함수는 PHP에서 echo, print 등과 같은 언어 구성을 지원하지 않습니다.

익명 함수

PHP에서는 익명 함수(클로저 함수라고도 함)를 사용하면 지정된 이름 없이 함수를 임시로 생성할 수 있습니다. 콜백 함수에 일반적으로 사용되는 매개변수:

<?php
print_r(array_map(function($value) {
    return $value * 2;
}, range(1, 5)));
# Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )

Closure 함수는 변수의 값으로도 사용할 수 있습니다.

$greet = function($name) {
    printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;); # Hello World

Closures는 상위 범위에서 변수를 상속할 수 있습니다. 이러한 변수는 사용 언어 구성을 사용하여 전달되어야 합니다.

<?php
$message = &#39;hello&#39;;
$example = function () use ($message) {
    echo $message;
};
$example(); # hello

사용 중인 변수 바인딩을 지연해야 하는 경우 참조를 사용해야 합니다. 그렇지 않으면 복사본이 만들어져 사용됩니다. 매체:

<?php
$result = 0;
 
$one = function() use ($result) { 
    var_dump($result); 
};
 
$two = function() use (&$result) { 
    var_dump($result); 
};
 
$result++;
 
$one();  # int(0)
$two();  # int(1)

동적 함수 호출

PHP에서는 함수를 직접 호출하는 것 외에도 call_user_func( ) 또는 call_user_func_array() 함수 간접 호출 기능:

<?php
function named_func($param1, $param2)
{
    echo "这是一个命名函数。参数是:$param1 和 $param2 。<br />";
}
call_user_func("named_func", "PARAM1", "PARAM2");
call_user_func_array("named_func", array("PARAM1", "PARAM2"));

위 내용은 PHP 학습 요약 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제