>백엔드 개발 >PHP 튜토리얼 >PHP 함수 일반 매개변수 함수 및 의사형 매개변수 함수

PHP 함수 일반 매개변수 함수 및 의사형 매개변수 함수

伊谢尔伦
伊谢尔伦원래의
2017-05-10 11:24:382360검색

PHP 함수에서 함수의 매개변수는 함수를 성공적으로 적용하거나 함수의 실행 동작을 제어하는 ​​방법을 결정하는 기준입니다. 매개변수 입력을 설정하고 적용하는 방법은 다양합니다. 다양한 매개변수로 함수를 선언하고 다양한 형태의 매개변수 입력으로 함수를 성공적으로 호출하는 방법을 배우는 것이 함수 학습의 핵심입니다. 앞서 다양한 형태의 PHP 함수를 선언하고 적용하는 방법을 소개했습니다. 이번 장에서는 함수 매개변수의 특성에 따라 두 가지 매개변수 유형, 즉 일반 매개변수 함수 의사형 매개변수 함수를 소개합니다.

php 일반 매개변수 함수

일반 매개변수 함수, 즉, C나 JAVA와 같이 강력한 유형의 언어에서 매개변수를 사용하는 것처럼 실제 매개변수와 형식 매개변수는 개수가 동일하고 유형이 일관되어야 합니다. 이러한 유형의 함수는 그다지 유연하지 않고 강력한 클래스 언어와 같이 엄격한 요구사항을 갖기 때문에 호출하기가 더 쉽습니다(매개변수 개수가 고정되어 있고 각 매개변수의 유형도 고정되어 있음).

일반 매개변수의 함수 형식 설명은 다음 형식과 유사합니다.

example(name, age, height)                // 常规参数的函数格式

PHP에서는 이러한 함수를 선언하면 약한 형식의 언어인 PHP의 장점을 활용할 수 없습니다. 예를 들어 위의 일반 매개변수의 함수 구문 형식 예시에서는 example이라는 함수를 선언하고 함수 실행 후 문자열 형태의 값을 반환한다. 이 함수에는 호출 시 전달되는 매개변수의 개수와 순서가 일관되어야 하며, 첫 번째 매개변수는 문자열 형식, 두 번째 매개변수는 정수형, 세 번째 매개변수는 배정밀도 형식이어야 합니다. 예를 들어, 사용자 정의 함수에서 두 정수의 제곱의 합을 구하는 함수는 일반 매개변수가 있는 함수이며 두 개의 정수 매개변수가 필요합니다. 이러한 유형의 시스템 기능도 많이 있습니다. 일반 매개변수를 사용하는 일부 시스템 기능은 다음과 같습니다:

string chr(int ascii)          // 必须使用一个整数作为参数
float ceil(float value)       // 必须使用一个浮点数作为参数
array array_combine(array keys, array values)            // 必须使用两个数组作为参数
int strnatcmp (string str1, string str2)          // 必须使用两个字符串作为参数
string implode(string glue, array pieces)    // 第一个参数必须是字符串,第二个参数必须是数组
string readdir(resource dir_handle)            // 必须使用一个资源类型作为参数

의사 유형 매개변수가 있는 PHP 함수

PHP 약한 유형의 언어입니다. 변수를 선언할 때 유형을 지정할 필요가 없을 뿐만 아니라 함수를 선언할 때 유형을 지정할 필요도 없습니다. 모든 유형의 값을 전달할 수 있습니다. 약한 타이핑은 PHP 언어의 가장 큰 특징이므로 함수를 선언할 때 동일한 매개변수가 모든 유형의 값을 허용할 수 있습니다. C나 JAVA와 같은 강력한 유형의 프로그래밍 언어에서 배열 정렬 방법을 선언하려면 배열 유형별로 정렬 방법을 작성해야 하는 것이 소위 함수 오버로딩입니다. PHP에는 약한 유형 매개변수에 대한 오버로드 개념이 없습니다. PHP에서는 다양한 유형의 배열을 정렬하려면 함수를 선언하는 것만으로도 충분하므로 의사 유형 매개변수를 사용하는 함수는 PHP에서 함수 적용의 가장 일반적인 형태입니다.

의사 유형 매개변수의 함수 형식 설명은 다음과 유사합니다.

mixed funName (mixed $args)    // 在参数列表中出现类型使用 mixed 描述的参数
number funName (number $args)    // 在参数列表中出现类型使用 number 描述的参数

PHP 의사 유형에는 혼합, 숫자 및 콜백이 포함됩니다. 함수를 선언할 때 매개변수가 여러 가지 다른 값을 허용할 수 있지만 반드시 모든 유형의 값을 허용할 수 있는 경우에는 혼합을 사용하여 함수 문서에서 매개변수 유형을 표시할 수 있습니다. 매개변수가 정수 또는 부동 소수점 유형이 될 수 있도록 지정하는 경우 숫자를 사용하여 매개변수를 표시할 수 있습니다. 의사 유형 매개변수를 전달할 수 있는 매개변수 외에도 함수의 반환값은 매개변수 유형에 따라 비어있는(), pow() 등 다양한 유형의 값을 반환할 수도 있습니다.

예를 들어 call_user_func() 함수는 PHP 내장 함수인 사용자 정의 함수를 매개변수로 받을 수 있다. 콜백 함수는 함수일 뿐만 아니라 객체의 메서드, 정적 클래스의 메서드일 수도 있습니다. PHP 함수는 함수 이름 문자열로 전달되며 모든 내장 함수 또는 사용자 정의 함수가 전달될 수 있습니다.

다음은 간단한 예입니다.

<?php
$data = array("name"=>"callback" , "value"=>"test");
$rs1 = http_build_query($data);        //直接调用php函数
$rs2  = call_user_func("http_build_query",$data);    //使用回调函数
echo $rs1;     //name=callback&value=test
echo "<br />";
echo $rs2;     //name=callback&value=test
?>

참고: 여기서 주목해야 할 점은 매개변수 1이 function_exists()를 통해 true를 반환할 수 있는 사용 가능한 함수여야 한다는 것입니다. 함수, 여기서는 isset,empty,is_null 등과 같이 일반적으로 사용되는 함수는 실제로 연산자이며 함수로 계산될 수 없다는 점을 상기시켜 드립니다.

【관련 튜토리얼 추천】

1. "php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼 "

2. PHP 프로그래밍 입문부터 마스터링까지 전체 동영상 튜토리얼

3.

PHP 실용 동영상 튜토리얼

위 내용은 PHP 함수 일반 매개변수 함수 및 의사형 매개변수 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.