수학의 함수처럼 y=f(x)
는 함수의 기본 표현 형태이고, x
는 매개변수, y
로 간주할 수 있습니다. > 이는 반환 값으로 간주될 수 있습니다. 즉, 함수 정의는 특정 작업을 수행하고 이를 호출하는 프로그램에 값을 반환할 수 있는 명명된 독립 코드 세그먼트입니다. y=f(x)
是函数基本的表达形式,x
可看做是参数,y
可看做是返回值,即函数定义就是一个被命名的、独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值。
在编写程序的过程中,我们会经常碰到某些功能模块在PHP中没有提供系统函数,这样就需要我们自己定义函数,即自定义函数,自定义函数的规则如下:
每个函数的第一行都是函数头,由声明函数的关键字function
、函数名和参数列表三部分组成。
每个自定义函数都必须使用function
关键字声明。
函数名可以代表整个函数,可以将函数命名为任何名称,只要遵循变量名的命名规则即可。但函数名称必须唯一,且不能与系统函数重名。
声明函数时函数名后面的花括号也是必须有的,在花括号中表明了一组可以接受的参数列表,参数就是声明的变量,然后在调用函数时传递给它值。参数列表可以没有,也可以有—个或多个参数,多个参数使用逗号分隔。
函数体位于函数头后面,用花括号括起来。函数被调用后,执行到retun
语句或最外面的花括号后结束,返回到调用的程序。
使用关键字return
可以从函数中返回一个值,然后返回到调用程序处继续执行。
<?php /* 将使用双层for循环输出表格的代码声明为函数,函数名为table */ function table() { echo "<table align='center' border='1' width='600'>"; for($out=0; $out < 10; $out++ ) { $bgcolor = $out%2 == 0 ? "red" : "blue";//各行换背景色 echo "<tr bgcolor=".$bgcolor.">"; for($in=0; $in <10; $in++) { echo "<td>".($out*10+$in)."</td>"; } echo "</tr>"; } echo "</table>"; } ?>
不管是自定义的函数还是系统函数,如果函数不被调用,就不会执行。函数被调用后开始执行函数体中的代码,执行完毕返回到调用的位置继续向下执行。调用规则如下:
通过函数名称去调用函数。
如果函数有参数列表,还可以通过函数名后面的圆括号传入对应的值给参数,在函数体中使用参数来改变函数内部代码的执行行为。
如果函数有返回值,当函数执行完毕时就会将return
后面的值返回到调用函数的位置处。
<?php /* 将使用双层for循环输出表格的代码声明为函数,函数名为table */ function table() { echo "<table align='center' border='1' width='600'>"; for($out=0; $out < 10; $out++ ) { $bgcolor = $out%2 == 0 ? "red" : "blue";//各行换背景色 echo "<tr bgcolor=".$bgcolor.">"; for($in=0; $in <10; $in++) { echo "<td>".($out*10+$in)."</td>"; } echo "</tr>"; } echo "</table>"; } ?>
参数列表是由零个、一个或多个参数组成的。每个参数是一个表达式,用逗号分隔。对于有参函数,在PHP脚本程序中和被调用函数之间有数据传递关系。定义函数时函数名后面括号内的表达式称为形式参数(简称“形参”),被调用函数名后面括号中的表达式称为实际参数(简称“实参”),实参和形参需要接顺序对应传递数据。如果函数没有参数列表,函数执行的任务就是固定的,用户在调用函数时不能改变函数内部的一些执行行为。
<?php /**自定义函数table()时,声明三个参数,参数之间使用逗号分隔 @param string $tableName 需要一个字符串类型的表名 @param int $rows 需要一个整型数值设置表格的行数 @param int $cols 需要另一个整型值设置表格的列数 */ function table( $tableName, $rows, $cols ) { echo "<table align='center' border='1' width='600'>"; echo "<caption><h1> $tableName </h1></caption>"; for($out=0; $out < $rows; $out++ ) { //使用第二个参数$rows指定表行数 $bgcolor = $out%2 == 0 ? "red" : "blue"; echo "<tr bgcolor=".$bgcolor.">"; for($in=0; $in < $cols; $in++) { //使用第三个参数$cols指定表列数 echo "<td>".($out*$cols+$in)."</td>"; } echo "</tr>"; } echo "</table>"; } ?> <?php table("表格",10,10); ?>
函数的返回值是函数执行的结果,调用函数的脚本程序不能直接使用函数体里面的信息,但可以通过关键字return
向调用者传递数据。return
语句注意点如下:
return
语句可以向函数调用者返回函数体中任意执行结果值。
在函数体中如果执行了return
함수
, 함수 이름, 매개변수 목록의 세 부분으로 구성됩니다. 🎜🎜function
키워드를 사용하여 선언해야 합니다. 🎜🎜retun
문 또는 가장 바깥쪽 중괄호 다음에 실행이 종료되고 호출 프로그램으로 돌아갑니다. 🎜🎜return
키워드를 사용하세요. 🎜🎜🎜🎜Demo🎜<?php /** 自定义函数table()时,声明三个参数,参数之间使用逗号分隔 @param string $tableName 需要一个字符串类型的表名 @param int $rows 需要一个整型数值设置表格的行数 @param int $cols 需要另一个整型值设置表格的列数 */ function table( $tableName, $rows, $cols ) { $returnStr="这是返回的字符串"; echo "<table align='center' border='1' width='600'>"; echo "<caption><h1> $tableName </h1></caption>"; for($out=0; $out < $rows; $out++ ) { //使用第二个参数$rows指定表行数 $bgcolor = $out%2 == 0 ? "red" : "blue"; echo "<tr bgcolor=".$bgcolor.">"; for($in=0; $in < $cols; $in++) { //使用第三个参数$cols指定表列数 echo "<td>".($out*$cols+$in)."</td>"; } echo "</tr>"; } echo "</table>"; return $returnStr; } ?> <?php echo table("表格",10,10); ?>🎜함수 호출🎜🎜사용자 정의 함수든 시스템 함수든 해당 함수가 호출되지 않으면 실행되지 않습니다. 함수가 호출된 후 함수 본문에 있는 코드의 실행을 시작합니다. 실행이 완료된 후 호출 위치로 돌아가 하향 실행을 계속합니다. 호출 규칙은 다음과 같습니다. 🎜
return
다음에 오는 값이 반환됩니다. 🎜🎜🎜🎜Demo🎜rrreee🎜함수 매개변수🎜🎜매개변수 목록은 0, 하나 이상의 매개변수. 각 인수는 쉼표로 구분된 표현식입니다. 매개변수화된 함수의 경우 PHP 스크립트 프로그램과 호출된 함수 간에 데이터 전송 관계가 있습니다. 함수를 정의할 때 함수 이름 뒤 괄호 안의 표현식을 형식 매개변수("형식 매개변수"라 함)라고 하고, 호출된 함수 이름 뒤 괄호 안의 표현식을 실제 매개변수("실제 매개변수"라 한다)라고 한다. 실제 매개변수와 형식 매개변수 데이터는 순차적으로 전송되어야 합니다. 함수에 매개변수 목록이 없는 경우 함수가 수행하는 작업은 고정되어 있으며 사용자는 함수를 호출할 때 함수의 내부 실행 동작 중 일부를 변경할 수 없습니다. 🎜🎜Demo🎜rrreee🎜함수의 반환 값🎜🎜 함수는 함수 실행입니다. 따라서 함수를 호출하는 스크립트는 직접 사용할 수 없습니다. 함수를 본문 정보에 포함하지만 return
키워드를 통해 호출자에게 데이터를 전달할 수 있습니다. return
문에 대한 참고 사항은 다음과 같습니다. 🎜return
문은 함수 본문의 모든 실행을 반환할 수 있습니다. 함수 호출자 결과 값에. 🎜🎜return
문이 실행되면 그 뒤의 문은 실행되지 않습니다. 🎜🎜🎜🎜Demo🎜rrreee위 내용은 PHP 사용자 정의 함수 선언, 호출, 매개변수 및 반환 값에 대한 기본 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!