PHP系列(二)PHP函数的声明与应用

简介:

(1)函数的定义和应用

function 函数名(参数1,参数2,参数3......

 {

    函数体

     return 返回值

 

 

<?php

table(3,8,"学生成绩表","red","green");

function table($row,$col, $tablename, $bgcolor1,$bgcolor2)

{

 echo "<table border=1 width=800>";

 echo"<caption><h1>".$tablename."</h1></caption>";

  $i=0;

  $k=0;

  while($i<$row){

 

 if($i%2==0)

     $bgc=$bgcolor1;

  else

     $bgc=$bgcolor2;

 

  echo "<tr bgcolor='".$bgc."'>";

  $j=0;

 while($j<$col)

{

  echo "<td>".$k++."</td>";

   $j++;

}

echo "</tr>";

$i++;

}

 echo"</table>";

}

 

table(5,2,"学生信息表","yellow","bule");

table(8,12,"学生表","#f00ff","#ffffaa");

?>

显示出三个表(学生成绩表,学生信息表,学生表)

 

2)函数局部变量

 

函数体结束、变量释放

<?php

function fun1()

{  

  $a=100;

  echo $a;

}

 

function fun2()

{

 $b=200;

 echo $b;

}

fun1();

fun2();

?>

显示:

100

200

 

3)函数的全局变量

 

<?php

$a=200;

$b=500;

function fun1()

{

 echo $GLOBALS["a"];

  

}

 

function fun2()

{

   global $b;

   echo $b;

}

fun1();

fun2();

?>

显示:

200

500

 

 

4)函数的静态变量

 

静态变量用在累加

<?php

function test()

{

  static $a=0; //静态变量

  echo $a."<br>";

   $a++;

}

test();

test();

test();

?>

显示:

0

1

2

 

function_exists();判断函数是否存在

<?php

function test()

{

  static $a=0;

  $a++;

}

 test();

if(function_exists("test1")){

         echo"test1 is exists";

}else{

         echo"test1 is not exists";

}?>

显示:test1 is exists

 

函数参数传递

<?php

 function fun1($a=1, $b=2, $c=3, $d=4, $e=5)

{

  echo $a."<br>";

  echo $b."<br>";

  echo $c."<br>";

  echo $d."<br>";

  echo $e."<br>";

 

}

fun1(a,b,c,d);

?>

显示:a b c d 5

 

 

func_get_args(); //获取方法中参数的数组

<?php

function fun($a)

{

  $args=func_get_args(); //获取方法中参数的数组

   echo count($args);

   echo "<br>";

   echo $args[4];

}

fun(1,2,3,5,688);

?>

显示为:5  688

5)变量函数

 

<?php

function test()

{

    echo "#######<br>";

}

$a=test;

$a();

?>//变量函数

显示:#######

 

6)递归函数

 

<?php

function demo($a){

 echo "#####".$a."<br>";

  if($a>0)

 demo(--$a);

}

demo(3);

?>//递归函数

显示为:

#####3

#####2

#####1

#####0

 

 

<?php

function demo($a){

 if($a > 1){

   $r=$a*demo($a-1);

  }else {

  $r=$a;

  }

return $r;

}

echo demo(4);

?>递归调用

4x3x2x1=24

 

function fun($a){

         echo$a."<br>";

         if($a>0){

                   fun($a-1);

         }else{

                   echo"-------<br>";

                   }

         echo$a."<br>";

}

fun(4);

显示:

4
3
2
1
0
-------
0
1
2
3
4

 

(7)回调函数

函数当作参数传递

function  fnCallBack( $msg1 , $msg2 )

{

   echo 'msg1:'.$msg1;

   echo "<br />\n";

   echo 'msg2:'.$msg2;

}

$fnName = "fnCallBack";

$params = array( 'hello' , 'world' );

call_user_func_array( $fnName , $params );

显示为:

msg1:hello

msg2:world

 

$arr = array(1,5,7);

Function mycon($a,$b){

         If($a>$b){

         Return1;

}elseif($a<$b){

Return -1;

}else{

Return 0;

}

}

Usort($arr,”mycon”);

Print_r($arr);

 

(8)内部函数

 

<?php

function demo($php,$java,$oracle){

 function php($php){

     if($php >=60 && $php<=100){

     return "php成绩及格";

      else{

       return "php成绩不及格";

      

 

 function java($java){

     if($java >=60 && $java<=100){

     return "java成绩及格";

      else{

       return "java成绩不及格";

      

 

 function oracle($oracle){

     if($oracle >=60 && $oracle<=100){

     return "oracle成绩及格";

      else

{

       return "oracle成绩不及格";

      

 

echo php($php)."<br>";

echo java($java)."<br>";

echooracle($oracle)."<br>";

 

 

$total=$php+$oracle+$java;

$anv=$total/3;

 

echo "你的总成绩是".$total."<br>";

echo "你的平均成绩是".$anv."<br>";

}

demo(10,80,70);

?>

显示为:

php成绩不及格
java
成绩及格
oracle
成绩及格
你的总成绩是160
你的平均成绩是53.3333333333

 

(9)加载自定义函数库

Include() 速度快脚本执行包含时、当处理失败时、会产生一个警告、

Require() 会导致一个致命错误

require()将一个文件在预处理期间被导入、像把该文件粘贴到使用函数的地方

include_once  require_once这二个函数如果被包含了。只会被包含一次、不会重复

 

10)匿名函数

<?php
$greet = function($name){
    printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');

(11)php引用参数的函数

只有在内存变量中才有地址、有引用关系的二个变量、一个变、另一个就变、

如果在函数说明中、有&出现、说明这个 参数是一个引用参数、调用时传参数时、就必须传一个变量

 

$b= 20;

functiondemo(&$a){

    $a=100;

}

echo$b."<br>";

demo($b);

echo$b."<br>";

显示为:

20

100


本文转自 sswqzx 51CTO博客,原文链接:http://blog.51cto.com/sswqzx/1963553


相关文章
|
PHP 开发工具 开发者
Xdebug在PHP中的应用
Xdebug 是一款非常实用的 PHP 调试工具,它为开发者提供了丰富的功能和便利,帮助开发者更高效地进行调试工作。熟练掌握 Xdebug 的使用方法,对于提高 PHP 开发质量和效率具有重要意义。
592 154
|
11月前
|
PHP 开发者
PHP计算过去一定时间段内日期范围函数
这个函数为开发者提供了一个快速而简单的方法来获取与当前日期相关的过去时间范围,代码简洁易懂,可复用性高。
264 15
|
SQL 关系型数据库 数据库连接
PHP脚本中应用while循环按照ID顺序列出数据集的技巧。
代码整体运行流程非常简单高效:连接数据库、发送查询、处理结果、关闭连接。下面的步骤是常规的PHP数据库操作流程,无需复杂处理即可实现按ID顺序列出数据集。确保代码清晰,易于理解,且可执行性强。如果在生产环境中应用这段代码,需要注意处理数据库连接的安全性、查询效率以及异常处理等。
234 16
|
PHP 开发者 索引
探究PHP中常见数组操作函数
在编码实践中,合理利用这些数组操作函数可以简化编程工作,提升代码的效率和可读性。为达到最佳实践,开发者应该通过阅读官方文档来深入理解每个函数的工作原理以及如何在不同的场景下运用它们。
488 8
|
存储 监控 NoSQL
在阿里云上构建高性能PHP应用:最佳实践指南
本文档从四个核心方面阐述了系统设计与优化的全面方案:**架构设计原则**包括分层架构(Web/逻辑/数据分离)与无状态设计(Redis会话存储、OSS文件管理);**核心服务选型**推荐高性价比的ECS、高性能Redis企业版及PolarDB数据库等;**性能优化技巧**涵盖代码层面(OPcache、Swoole框架)、数据库优化(复合索引、分库分表)以及进阶容器化和函数计算策略;**监控体系搭建**则通过云监控、ARMS应用监控、日志服务SLS等工具,确保系统稳定高效运行。
324 10
|
存储 自然语言处理 安全
PHP-Casbin:现代化 PHP 应用的权限管理引擎
PHP-Casbin 是基于 PERM 模型的轻量级权限框架,支持 ACL、RBAC、ABAC 等多种访问控制模型,适用于 API 安全控制、企业权限管理等场景。其灵活配置、多语言协同与分布式支持,使其成为现代化 PHP 应用权限管理的首选工具。
457 0
|
PHP 开发者 UED
PHP中的异常处理:理解与应用
在编程的世界中,错误和异常就像是不请自来的客人——总是在你最不希望它们出现的时候敲门。对于PHP开发者来说,学会优雅地处理这些“不速之客”是提升代码质量和用户体验的关键。本文将带你深入理解PHP中的异常处理机制,通过实际的代码示例,展示如何捕获、处理以及自定义异常,让你的应用程序更加健壮和灵活。准备好迎接挑战,让我们共同探索PHP异常处理的奥秘吧!
339 66
|
存储 监控 算法
公司员工电脑监控软件剖析:PHP 布隆过滤器算法的应用与效能探究
在数字化办公的浪潮下,公司员工电脑监控软件成为企业管理的重要工具,它能够帮助企业了解员工的工作状态、保障数据安全以及提升工作效率。然而,随着监控数据量的不断增长,如何高效地处理和查询这些数据成为了关键问题。布隆过滤器(Bloom Filter)作为一种高效的概率型数据结构,在公司员工电脑监控软件中展现出独特的优势,本文将深入探讨 PHP 语言实现的布隆过滤器算法在该软件中的应用。
242 1
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
399 3
|
缓存 NoSQL PHP
用装饰器模式实现多层缓存:让PHP应用更快更稳
通过装饰器模式实现PHP多层缓存架构,详解如何利用内存、Redis、文件缓存组合提升应用性能。包含设计思路、代码示例与实战效果对比,助您构建高效缓存策略。