本节主要是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. [Linux]在终端启动程序关闭终端不退出的方法

    一般情况下关闭终端时,那么在这个终端中启动的后台程序也会终止,要使终端关闭后,后台程序保持执行,使用这个指令: nohup 命令 & 如:nohup test.sh & 回车,然后提示 ...

  2. 前端要给力之:URL应该有多长?

    URL到底应该有多长?我为什么要提这个问题呢?有许多优化指南里都写着:要尽量减小COOKIE.缩短URL,以及尽可能地使用GET请求等等,以便优化WEB页面的请求和装载.但是,这种所谓“尽可能”.“尽 ...

  3. 拍案惊奇!9款神奇的jQuery/CSS3经典插件

    款非常给力的jQuery/CSS3经典插件,插件包括CSS3图片特效.jQuery动画菜单.jQuery时尚登录表单等,一起来看看这些jQuery插件. .CSS3图片重力感应特效 这是一款应用重力感 ...

  4. C++11 lambda 表达式解析

    C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看.本文作为 5 月的最后一篇博客,将介绍 C++11 的 lamb ...

  5. 【5】基于Log4Net的日志系统

    阅读目录 日志系统应具备的特性  Log4Net 配置文件:log4net.config 初始化 输出信息 对Log4Net的封装 log4net.config复杂配置   不管是Web应用程序还是W ...

  6. mac苹果ping不通网络

    新买了mac,在安装synergy的时候,我拿我的win当server,mac当client,随后发现,synergy提示连接不到server,ping host 失败, cannot connect ...

  7. 【Canvas】动态正17边光阑 向高斯致敬

    [背景知识] 公元前三世纪,欧几里得在<几何原本>中记载了正方形,正五边形,正六边形的做法,后来人们也掌握了正十五边形作图,但之后两千多年,人们没有在更高阶边形上取得突破. 1796年,1 ...

  8. Linux学习笔记--which命令(搜索命令的命令)

    which.哪一个的意思.作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名. which命令特点: 1) "which" 命令仅仅能查找系统命令.不能搜索普通文件. ...

  9. 用Main方法调用freemarker生成文件

    MyGenerator.java package com.comp.common; import java.io.BufferedWriter; import java.io.File; import ...

  10. ZH奶酪:PHP判断图片格式的7种方法

    以图片 $imgurl = "http://www.php10086.com/wp-content/themes/inove/img/readers.gif"; 为例: 思路1. ...