Skip to content
电脑工程师入门

电脑工程师入门

create tomorrow, create happiness

  • 实用软件教程
    • Excel
    • WordPress
    • Powerpoint
    • PowerApps
    • PowerAutomateDesk
  • 计算机语言入门
    • PHP
    • Bootstrap
    • JavaScript
    • Python
    • HTML
    • WordPress
  • 咨询
  • Home
  • PHP
  • 第九章函数的讲解
  • HOME
  • PHP
  • 第九章函数的讲解

第九章函数的讲解

PHP

函数是一组以名称作为函数名定义的进程。一系列重复多次的任务被放在一起作为一个函数,函数在需要时被调用和使用。函数有两种类型:内置函数和用户自定义函数,这里我们将解释如何在PHP中使用用户自定义函数。

9-1 関数的使用方法

在看函数的具体用法之前,我们先看看什么时候方便使用函数。

例如,创建一个样本来检查测试结果是通过还是失败。

$math = 84;
$english = 62;
$yuwen = 78;

print '数学的成绩:';
if ($math > 75){
  print '及格';
}else{
  print '不及格';
}

print '英语的成绩:';
if ($eigo > 75){
  print '及格';
}else{
  print '不及格';
}

print '语文的成绩:';
if ($kokugo > 75){
  print '及格';
}else{
  print '不及格';
}

使用 if 语句确定数学、英语和语文这三门科目的分数。虽然几乎是一样的流程,但是每次都要写一样的描述。(如果用数组和迭代处理,可以写的巧妙一点,不过这次我就不做了,因为我是在讲解函数)。

如果能把这个sample中决定分数并输出的部分分开分组,需要的时候调用会方便。因此,让我们将其重写为一个函数:

function check($subject, $dianshu){
  print $subject.'的成绩:';
  if ($dianshu > 75){
    print '合格';
  }else{
    print '不合格';
  }
}

$math = 84;
$english = 62;
$yuwen= 78;

check('数学', $math);
check('英語', $english);
check('语文', $yuwen);

将程序中重复使用的一系列过程组合在一起,在需要的时候调用。如果把它们放在一起,你只需要写一次相同的过程。其优点不仅是减少了描述量,而且程序更容易看懂,而且由于检查只需进行一次,因此可以减少程序描述中的错误数量。

像这样的一组进程称为一个函数。函数通过被调用来执行功能块中描述的一系列处理。

让我们在前面的示例中添加物理和化学的科目。

function check($subject, $dianshu){
  print $subject.'的成绩:';
  if ($dianshu > 75){
    print '合格';
  }else{
    print '不合格';
  }
}

$math = 84;
$english = 62;
$yuwen= 78;
$wuli = 52;
$huaxue = 92;

check('数学', $math);
check('英語', $english);
check('语文', $yuwen);
check('物理', $wuli);
check('化学', $huaxue);

定义为函数的部分不需要改动任何东西,只需要增加两个调用函数的地方即可。通过将一定量的处理分组为函数,可以高效地创建程序。

我们将在下一节仔细研究如何使用这些功能。

示例代码

では簡単なプログラムで試して見ます。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>

<p>PHP TEST</p>

<p>
<?php
function check($subject, $dianshu){
  print $subject.'的成绩:';
  if ($dianshu > 75){
    print '合格';
  }else{
    print '不合格';
  }
  print '(点数:'.$dianshu.')';
  print '<br />';
}

$math = 84;
$english = 62;
$yuwen= 78;

check('数学', $math);
check('英語', $english);
check('语文', $yuwen);
?>
</p>

</body>
</html>

如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。

9-2 関数的定义和引用的方法

让我们看看函数是如何定义的。基本格式如下。

function 函数名(参数1,参数2,...){
  要执行的操作 1;
  要执行的操作 2;
}

函数是多个进程的集合,当从程序内部调用时,它按顺序执行块中描述的进程。

由于函数可以被定义多次,所以必须给它们命名以识别它们。可用作函数名称的字符串以下划线或字母开头,后跟下划线、数字和字母。请注意,与变量名不同,它们不区分大小写。(例如,Disp、DISP 和 disp 都具有相同的函数名称)。

参数也成为argument,当您想要将一些值传递给函数时使用。可以根据需要编写尽可能多的参数。检查以下详细信息。

例如:

function hello(){
  print 'hello';
}

这个函数的函数名是“hello”,没有参数。当函数被调用时,它只是执行“print ‘hello’;”然后退出。

函数调用

定义函数后,您可以在程序中调用它。调用函数的格式如下:

函数名(参数1, 参数2, ...);

调用函数时,在函数名后的“(” 和 “)”之间指定参数。“(” 和 “)”即使没有参数也不能省略。

此外,当您调用一个函数时,它可能会返回一个值。例如,如果您定义了一个执行计算的函数,它将把计算结果作为返回值返回。在这种情况下,您可以将函数返回的值赋值给变量,方法如下。(返回值也将在下一页确认)。

変数 = 函数名(参数1, 参数2, ...);

由于没有参数,所以以函数名()的形式调用。

function hello(){
  print 'hello';
}

hello();

由于没有参数,所以以函数名()的形式调用。

请注意,函数可以在函数调用之前或之后定义。到目前为止的例子中,先定义函数然后调用,但也可以在函数调用之后定义它,如下所示。

hello();

function hello(){
  print 'hello';
}

带有函数的程序处理流程

程序通常按照编写的顺序从上到下执行,但是函数内编写的处理直到函数被调用才会执行。进行函数调用时,一旦函数内部的流程被执行,流程将移至函数调用后的下一行。

function hello(){
  print 'DEFGJ';
}

print 'ABCDEF';
hello();
print 'GHIMN';

上面先定义了函数,但是并没有执行函数内部的处理。首先执行的是“print ‘ABCDEF’;”。然后使用“hello();”调用该函数。然后,流程移动到函数“hello”一次并执行“print ‘DEFGJ’;”。当进程到达函数内块的末尾时,进程继续到调用函数的“hello();”之后的下一行,并执行“print ‘GHIMN’;”。

示例代码

では簡単なプログラムで試して見ます。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>

<p>PHP TEST</p>

<p>
<?php
function test(){
  print '处理已移至函数的内部<br />';
  print 'GHIMN<br />';
  print '函数内部的处理结束<br />';
}

print 'ABCDEFG<br />';
print 'DEFGHK<br />';

test();

print 'JKLMLKJ<br />';
print 'MNOERT<br />';
?>
</p>

</body>
</html>

如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。

9-3使用参数将值传递给函数

我将检查如何在函数中使用参数。首先,让我们看看何时使用参数。

print '你好。于华。';
print '你好吗?';

// 其他处理

print '你好。姜明。';
print '你好吗?';

与上面相同的过程出现了两次。它们几乎相同,但即使有一处不同,也不能将它们归为一个功能。在这个例子中,只有“你好吗?”部分可以是一个函数。

function greeting(){
  print '你好吗?';
}

print '你好。于华。'';
greeting();

// 其他处理

print '你好。姜明。';
greeting();

在这种时候,如果能够在每次调用函数时更改一些值,并在函数调用方指定它们,那就太好了。在这种情况下,如果在调用函数时可以指定名称值,则可以将更广泛的处理组织为函数。

参数是调用函数时传递给函数的值。用参数重写前面的例子看起来像这样:

function greeting($name){
  print '你好。'.$name.'同学';
  print '你好吗?';
}

greeting('于华');

// 他の処理

greeting('姜明');

在调用方,要传递给函数的值用“(”到“)”描述,如“函数名(值)”。在函数方面,用同样的方式在“(”和“)”之间描述存储传递值的变量。格式如下。

function 函数名(变量名){
  // ...
}

函数名(値);

在这个例子中,“于华”在第一次调用函数时作为值传递给函数。在函数方面,值“于华”存储在变量“name”中,并执行函数中的处理。第二次调用时,“姜明”作为值传递给函数。在函数方面,值“姜明”将存储在变量“name”中,函数中的处理将被执行。。

通过使用参数,可以在每次调用和执行函数时指定一个值。

多个参数

您可以根据需要指定任意多个参数,而不仅仅是一个。指定多个参数时,用逗号 (,) 分隔它们。格式如下。

function 函数名(参数1, 参数2, ...){
  // ...
}

関数名(値1, 値2, ...);

值按照调用者指定的顺序存储在变量中。至值 1 至变量 1 值 2 存储在变量 2 中,并执行函数中的处理。

例如,指定两个值并输出平均值的函数可以写成如下形式。

function chengji($num1, $num2){
  $average = ($num1 + $num2) / 2;
  print '平均成绩是'.$average.'。';
}

chengji(10, 8);
chengji(3, 23);

在此示例中,第一个函数调用计算并打印 10 和 8 的平均值。下一个函数调用计算并打印 3 和 23 的平均值。

示例代码

让我们用一个简单的程序来试试吧。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>

<p>PHP TEST</p>

<p>
<?php
function chengji($num1, $num2){
   $average  = ($num1 + $num2) / 2;
  print $num1.'和'.$num2.'的平均数是'.  $average .'。<br />';
}

heikin(12, 10);
heikin(12, 24);
?>
</p>

</body>
</html>

如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。

9-4 使用返回值来返回函数的值

函数在被调用时可以使用参数传递值,但作为函数内部一些处理的结果,值现在可以从函数返回给调用者。例如,执行数值计算的函数可以将计算结果返回给调用者,或者处理字符串的函数可以返回处理后的结果。

使用 return 语句从函数返回一个值。格式如下。

return 返回值;

指定要返回给调用者的值作为返回值。可以为返回值指定除数字、字符串等之外的所有值,例如数组。由于 return 语句不是函数,因此在指定返回值时不需要括号。

如果返回一个返回值,调用该函数的“函数名(参数)”的评估将成为返回值。要保存返回值,将其存储在变量中,如“变量=函数名(参数)”。例如:

function jiafa($num1, $num2){
  $sum = $num1 + $num2;
  return $sum;
}

$sum = jiafa(11, 9);
print '加法的运算结果是'.$sum.'。';

print '加法的运算结果是'.plus(7, 24).'。';

上面直接描述了返回值保存在变量中使用的情况,以及函数调用本身。

在函数中执行return语句时,返回返回值,函数内的处理到此结束。换句话说,当执行 return 语句时,处理将移至调用该函数的原始语句。请参见以下示例。

function jiafa($num1, $num2){
  $sum = $num1 + $num2;
  return $sum;

  print '不能处理这的程序';
}

$sum = jiafa(10, 8);

当在函数中执行 return 语句时,处理返回给调用者,因此永远不会执行“print ‘不能处理这的程序‘;”。

也可以像下面这样写多个return语句,根据条件改变返回值。

function jiafa($num1, $num2){
  if ($num2 == 0){
    return NULL;
  }

  return $num1 / $num2;
}

$result = jiafa(10, 8);

如果第二个参数的值为 0,上面返回“NULL”,否则返回第一个参数除以第二个参数的结果。

与参数不同,只能指定一个值作为返回值。但是,由于也可以指定数组,因此可以使用数组返回多个值。

示例代码

让我们用一个简单的程序来试试吧。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>PHP TEST</title>
</head>
<body>

<p>PHP TEST</p>

<p>
<?php
function jiafa($num1, $num2){
  $sum = $num1 + $num2;
  return $sum;
}

$sum = jiafa(10, 8);
print '10 + 8的运算结果是'.$sum.'。<br />';

print '7 + 14的运算结果是'.plus(7, 14).'。';
?>
</p>

</body>
</html>

如果将上述文件放在WWW服务器的文档根目录下,用浏览器访问,将显示如下。

标签:PHP

文章导航

❮ Previous Post: 第八章数组的讲解
Next Post: 第十章Class的讲解 ❯

关联内容

PHP
第一章PHP 安装和初始配置
PHP
第二章PHP程序基础
PHP
第四章数字和算术运算
PHP
第三章文字列的基础
PHP
第五章变量的讲解
PHP
第六章条件分支

实用软件教程

  • Powerpoint
  • Excel
  • PowerAutomateDesk
  • Wordpress
  • Powerapps

编程语言入门

  • JavaScript
  • HTML
  • PHP
  • Python
  • Bootstrap

Copy right by flashyonder.com