您的位置 首页 php

php新手学习,自定义函数

一、函数定义及语法:

函数:对一段功能(类似或重复的功能)进行“打包”,然后以上的功能可以反复使用,提升程序执行的效率,这个打包的整体称为函数(function)。方法 method

语法:

function 函数名(){

//语句块

}

调用:

函数名();

<?php

//定义一个函数

function TestFunction(){

echo “我是测试函数”;

}

//调用

TestFunction();

//反复调用

TestFunction();

//在PHP中函数不区分大小写

testFunction();

?>

TIPS:

1、在PHP中函数名不区分大小写,建议区分;

2、函数可以在任何位置定义,建议是在调用前定义。

二、函数和文件引用的关系

单独定义的函数可以以.php、.inc(include,会有安全型隐患,不推荐使用)等方式保存,再通过文件引用调用。

可以定义文件名为 xxx.inc.php 方便使用而且专业~0~。

三、带参数的函数

<?php

//带参数的函数

function Test1($t1,$t2){

echo “输入的第一个数:”.$t1.”<br>”;

echo “输入的第二个数:”.$t2.”<br>”;

echo “和为:”;

echo $t1+$t2;

echo “<br>”;

}

//调用时参数个数、顺序、数据类型都不能随意(要保持一致)

Test1(1,1);

Test1(2,3);

Test1(3,2);

?>

四、带返回值的函数

函数有个运算结果,这个结果可以用于后续的运算,那么这个函数必须要有返回值。

<?php

//带返回值的函数

function Test1($t1,$t2){

return $t1+$t2;

}

echo Test1(3,4);

$result2=Test1(2,3);

echo $result2;

?>

TIPS:

1、一个函数最多只有一个返回值;

2、return后面的语句不可达。

<?php

//带返回值的函数

function Test1($t1,$t2){

if($t1+$t2>0)

return $t1+$t2;

return 0;

}

echo Test1(3,4);

echo Test1(2,3);

echo Test1(2,-3);

?>

五、传值与传地址(在函数中通过参数操作 全局变量 )

<?php

$t1=1;

function Test($t1){//参数也是 局部变量

$t1=2;

echo $t1;

}

echo $t1;

Test($t1);//传值

echo $t1;

function Test1(&$t1){//传地址

$t1=3;

echo $t1;

}

Test1($t1);

echo $t1;

?>

六、变量作用域(area):也叫生命周期(lifetime),就是变量起作用的范围。按照变量的作用域变量可以分为:

局部变量:在对应函数中定义叫做该函数的局部变量,只在函数调用时生效,定义和调用结束都不生效。

全局变量:所有函数之外的变量。

<?php

$t1=1;//全局变量

function Test1(){

$t1=2;

echo “我是test1函数的局部变量$t1”;

}

function Test2(){

echo “我是test2函数的局部变量$t1”;

}

echo $t1;//全局变量

Test1();

echo $t1;//全局变量

Test2();

?>

想要在函数中直接操作全局变量,可以使用global声明

<?php

$t1=1;//全局变量

function Test1(){

global $t1;//声明该变量就是全局变量,但是不能赋值

$t1=2;

echo $t1;

}

echo $t1;//全局变量

Test1();

echo $t1;//全局变量

?>

或者通过超全局变量$GLOBALS[“全局变量名修改”]

<?php

$t1=1;//全局变量

function Test1(){

$GLOBALS[“t1”]=2;//超全局变量,直接操作全局变量

echo $t1;//局部变量

}

echo $t1;//全局变量

Test1();

echo $t1;//全局变量

?>

TIPS:推荐多使用局部变量。避免重复,还能提升效率!!!

七、带 默认值 的函数

在PHP中不得存在同名的函数,希望一个函数功能可以继续扩展

<?php

//带默认值

function Test1($defaulttmp=1){

echo $defaulttmp;

}

//function Test1(){}

Test1();

Test1(2);

?>

在例如:

<?php

//带默认值

function Test1($defaulttmp=1,$tmp){

echo $defaulttmp;

}

//调用

//Test1(,2);//错误

Test1(3,4);

function Test2($t1,$t2=2){

echo $t1;

}

Test2(1);

//Test2(1,);//错误

Test2(1,3);

?>

作业:

1、改写乘法口诀表

1)用户输入值小于等于0给出错误提示;

2)用户输入值大于9给出错误提示;

3)用户输入一个整数值,显示乘到该值的结果。

<?php

//实现乘法口诀表 $row显示的行数

function ChengFa($row){

switch(gettype($row)){//获取用户输入值的数据类型

case “string”:die(“输入的值是字符串”); break ;

case “double”:echo “输入的小数”;return;break;

case “boolean”:die(“输入的是布尔类型”);break;

}

if($row<=0 || $row>9)

{

echo “输入的数值不在合理范围内”;

return;

}

for($i=1;$i<=$row;$i++){

for($j=1;$j<=$i;$j++){

if($row==$i)

echo $j.”*”.$i.”=”.$j*$i.” “;

}

echo “<br>”;

}

}

ChengFa(9);

?>

2、数组排序改写

1)输入任何数组都可以完成排序;

2)排序可以控制升序还是降序;

3)默认为升序。

<?php

$arr=array(5,4,6,7,3,2);

/*

**********

Describe:数组排序

Paramters:$arr 需要排序的数组

$isAsc 升序/降序 true为升序,false为降序

默认升序

**********

*/

function SortArray($arr,$isAsc=true){

echo “排序前数组:”;

foreach ($arr as $v){

echo $v.” “;

}

for($i=0;$i<count($arr);$i++){

for($j=0;$j<count($arr)-1-$i;$j++){

if($isAsc){

//升序

if($arr[$j]>$arr[$j+1]){

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

elseif(!$isASC){

//降序

if($arr[$j]<$arr[$j+1]){

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

}

}

echo “<br>排序后数组:”;

foreach($arr as $v){

echo $v.” “;

}

}

SortArray($arr);

SortArray($arr,false);

?>

3、何氏三角改写:

1)输入任何整数显示对应行的结果;

2)小于等于0给出错误提示。

4、工资考勤

1)员工默认基本月工资为1280元

2)满勤奖为30天300元乘以百分比

3)出勤率>=90%~100% 全额发放满勤奖

4)出勤率>=80%~<90% 满勤奖90%发放

5)出勤率70%~80% 满勤奖为50%

6)出勤率低于70% 工资扣款为考勤缺勤比例

7)分别计算“张三”出勤率85%、“李四”出勤率60%的月工资(忽略其他奖金等计酬~0~)。

<?php

function GetMoney($name,$existsper){

$balary=1280;

$base=300;

if($existsper>=0.9)

$base=$base*100/100;

elseif($existsper>=0.8 && $existsper<0.9)

$base=$base*0.9;

elseif($existsper>=0.7 && $existsper<0.8)

$base=$base*0.5;

elseif($existsper<0.7)

$base=-(1-$existsper)*$balary;

echo “【”.$name.”】工资:”.($balary+$base).”<br>”;

}

GetMoney(“张三”,0.85);

GetMoney(“李四”,0.6);

?>

文章来源:智云一二三科技

文章标题:php新手学习,自定义函数

文章地址:https://www.zhihuclub.com/79434.shtml

关于作者: 智云科技

热门文章

网站地图