本节主要是php中函数的学习:

 <html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>
<?php
/*
* PHP中的函数
* 函数使用关键字function来定义
* 通常由函数名称、参数、函数体和返回值四部分组成
* ① 不允许函数重名
* ② 不能以数字开头,只能包括字母、数字和下划线
* ③ 函数名不区分大小写
* ④ 可使用函数名直接调用,后跟需要传入的参数并用小括号括起来
如果没有需要传入的参数,则只写小括号
* ⑤ 在php脚本中,可以先调用函数而后定义函数,谁先谁后没有固定要求
*/
function returnNum($num1,$num2){
$sum=$num1+$num2;
return $sum;
}
echo returnNum(3,5)."<br/>"; /*
* 工作中,有时还会将任意数量的参数传递给函数
* php中func_num_args函数返回参数总数,func_ge_args函数返回参数的具体信息
*/
function muti_parameters(){
$all_parameters=func_get_args();
foreach($all_parameters as $key=>$value){
echo "键:$key=>值:$value<br/>";
}
echo "函数体所含参数数量:".func_num_args()."<br/>";
echo "执行完一次muti_parameters函数<br/>";
}
muti_parameters(1,2,3,'你好');
muti_parameters(); /*
* 按值传递
* php中出了对象类型外,其他类型的参数传递方式都是值传递
*/
function example($num){
return $num*$num;
}
echo example(5)."<br/>"; /*
* 按引用传递
* ① 引用传递方式是在形参前加上"&"号
* ② 按引用传递是将实参的内存地址传递到形参中,所以不能直接传递值进入函数
*/
//
$num1=1;
function in_value(&$temp){
$temp+=4;
echo '函数内部temp='.$temp;
}
in_value($num);
echo "<br/>";
echo '函数调用结束后实参$num='.$num."<br/>";
//
$num=3;
function in_value1(&$temp){
$temp+=4;
echo '函数内部temp='.$temp;
}
//in_value1(3);此时程序报错ERROR /*
* 默认参数值
* 在php中定义函数时,参数可带默认值,在不传入数据时有默认值的参数直接被赋值为默认值
*/
function member($name,$sex='男'){
echo "姓名:".$name.' 性别:'.$sex."<br/>";
}
member('Jim');
member('Lily','女'); /*
* 局部变量
* 静态变量:static
* ① 全局变量也是外部变量,是在函数的外部定义的
需要在函数中使用全局变量时,可以将其声明为global
* ② 在全局范围内访问变量的第二个办法:使用php自定义的$GLOBALS数组
* ③ global与$GLOBALS的区别:
使用global的时候其实是在使用全局变量的一个引用
而使用$GLOBALS时其实是在使用全局变量本身
*/
//1 global
$temp1=1;
$temp2=2;
function sum(){
global $temp1,$temp2;//使用global关键字引用
$temp2=$temp1+$temp2;
}
sum();
echo '$temp2='.$temp2."<br/>";//$temp2=3
//2 $GLOBALS数组
$temp1=1;
$temp2=2;
function sum2(){
$GLOBALS['temp2']=$GLOBALS['temp1']+$GLOBALS['temp2'];
}
sum();
echo 'temp2='.$temp2."<br/>";
//3 global与$GLOBALS的区别
$temp1=1;
$temp2=2;
function sum3(){
global $temp1;
unset($temp1);
unset($GLOBALS['temp2']);
}
sum3();
echo '$temp1='.$temp1.'<br/>'; //$temp1=1,函数中只是删除了一个引用,原变量还在
//echo $temp2;错误,因为此时temp2已经被释放掉了 /*
* php支持在函数内部定义一个函数,或者根据程序的需要在函数内部处理后得到符合需求的函数
*/
function outside_define($define){
if($define=='add'){
function inside_define($num){
$num +=$num;
return $num;
}
}else{
function inside_define($num){
$num *=$num;
return $num;
}
}
}
outside_define('add');
echo inside_define(6)."<br/>";
//outside_define('ss');第二次执行会报错,因为函数inside_define()已经定义了 /*
* php可提供用变量存储函数名称的功能
* 当在变量后追加小括号时,php将自动解析变量的值是否为一个函数名,
* 如果是,则直接执行该函数
*/
function low($num){
$num=$num-100;
echo $num;
}
function ride($num){
$num=$num*100;
echo $num."<br/>";
}
$fn="ride";
$fn(8); /*
* 递归函数
* 定义:在一个函数的内部,含有直接或间接调用自己本身的语句
* 建议使用循环替代递归
因为递归函数将在内存中创建几个自身的副本,而且将产生几次函数调用的开销
*/
function factorial($num){
if($num==0){
return 1;
}else{
return $num * factorial($num-1);
}
}
echo factorial(4)."<br/>"; /*
* 使用和包含文件:include()与require()
* include("demo.php");require('demo.php')
* 主要区别:
* ① 当找不到被包含的文件时,require将输出错误,而include输出警告
② include和require支持相对路径和绝对路径,
如果没有指定明确路径,则在当前目录搜索,
然后查找php.ini文件include_path设置中列出的目录
③ php不支持函数重载
* 一个文件要包含两个不同的文件,而这两个文件却又包含了同一个文件,
为了解决这个问题,php提供了include_once和require_once。
他们在第一次编译的时候会包含指定的文件并记住这个文件,当脚本第二次解析到这里的时候,
他们将会通知php该文件已被包含过。这样,就防止了函数或结构重复定义的问题
*/ /*
* php模块化
* 例如:
* header.php
<html>
<head>
<title><?php echo $title;?></title>
<style>
h1{color:red;}
</style>
</head>
<body>
* footer.php
<div align="center" width="200px">This is my footer</div>
</body>
</html>
* body.php
<?php
$tile='include && require is my good friend';
require('header.php');
?>
<h1><?php echo $title;?></h1>
<?php
require('footer.php');
?>
*/
?>
</body>
</html>

【php】基础学习3的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

  10. qml基础学习 Canvas画笔

    一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...

随机推荐

  1. 第十六章 springboot + OKhttp + String.format

    模拟浏览器向服务器发送请求四种方式: jdk原生的Http包下的一些类 httpclient(比较原始,不怎么用了):第一章 HttpClient的使用 Okhttp(好用,推荐) retrofit( ...

  2. uva 10160 Servicing Stations(DFS+剪枝)

    Servicing stations A company offers personal computers for sale in N towns (3 <= N <= 35). The ...

  3. 搭建个人博客-hexo+github

    自己也算是摸爬滚打搭建成功,然后自己再重新安装部署一遍,把完整步骤分享给大家,同时最后有一些连接,如果我的步骤不行,大家可以参考其他人的(这个有点花费时间,大家提前有个心理准备 - _-) 一.第一步 ...

  4. GO语言基础之并发concurrency

    并发Concurrency 很多人都是冲着 Go 大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine 只是由官方实现的超级“线程池”而已.不过话说回来,每个实例 4-5KB的 ...

  5. (转)unity3d插件 HUD Text 学习

    转自:http://www.cnblogs.com/code1992/p/3657291.html 使用版本 NGUI_HUD_Text_v1.11 .英语水平差,难免有很多不足之处,忘批评指正.本文 ...

  6. (转)[Unity3D]UI方案及制作细节(NGUI/EZGUI/原生UI系统) 内附unused-assets清除实例

    转载请留下本文原始链接,谢谢.本文会不定期更新维护,最近更新于2013.09.17.   http://blog.sina.com.cn/s/blog_5b6cb9500101bplv.html   ...

  7. WIN32 SDK对COM的支持

     

  8. [Node.js]32. Level 7: Working with Lists -- Redis

    As we saw in the video, redis can do more than just simple key-value pairs. We are going to be using ...

  9. 在Ubuntu 桌面版 12.04 LTS安装并运行SSH

    第一步:安装openssh-server #sudo apt-get install openssh-server 第二步:查看ssh服务是否已经运行,执行 #ps -e | grep ssh 执行完 ...

  10. php+tomcat 配置运行环境

    为了学习php,本教程始于:2017.11.16 完成时的截图! 1.首先下载: VC 2015++ 点击下载 2. 把下载好的php复制到本目录,然后解压并且重命名为“php”,如果没有下载php, ...