【php】基础学习3
本节主要是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的更多相关文章
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- CSS零基础学习笔记.
酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
- qml基础学习 Canvas画笔
一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...
随机推荐
- 简单使用CSS3实现炫酷读者墙效果
读者墙,在很多网站上都有,没有遇到过的,可以参考度娘:读者墙http://www.baidu.com/s?wd=%B6%C1%D5%DF%C7%BD 使用基础的Html和CSS写出雏形 需要一提的是头 ...
- URAL 1807
题目大意:给出一个正整数n(n为合数),求n的一个划分(a1,a2,...,ak,...)(k>=2).使得其在存在最大的最大公约数之下,存在最大的最小公倍数. KB 64bit IO ...
- HDU 1247 Hat’s Words (字典树 && map)
分析:一開始是用递归做的,没做出来.于是就换了如今的数组.即,把每个输入的字符串都存入二维数组中,然后创建字典树.输入和创建完成后,開始查找. 事实上一開始就读错题目了,题目要求字符串是由其它两个输入 ...
- wireshark 的使用(filter的用法)
转自:http://blog.csdn.net/hanyuxinting/article/details/5558095 过滤器语法---------------------------------- ...
- Struts2远程代码执行漏洞预警
近期struts2 框架再现高危远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638.利用此漏洞可对使用了struts2框架的网站进行远程命令执行,对服务器造成威胁.请相关单位 ...
- ZH奶酪:JavaScript清空数组的三种方法
参考链接:http://snandy.iteye.com/blog/893955 方式1,length赋值为0 目前 Prototype中数组的 clear 方法和mootools库中数组的 empt ...
- 【AngularJS】Controller
理解控制器 在Angular中,一个容器就是一个JavaScript构造函数,用来增强Angular Scope. 当一个控制器通过ng-controller指令绑定到DOM,Angular就会实例化 ...
- EventBus源码分析
一. EventBus简介 1.1.EventBus EventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化Android 事件传递,这里的事件可 ...
- java—(2)maven基本命令
均在含pom.xml文件的路径下执行 maven命令执行是按阶段执行的.如执行mvn package.则实际上已经执行了例如以下命令: watermark/2/text/aHR0cDovL2Jsb2c ...
- SQL左连接右连接
假设有A,B两个表. 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 ...