博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟随我在oracle学习php(28)
阅读量:5862 次
发布时间:2019-06-19

本文共 1570 字,大约阅读时间需要 5 分钟。

二分查找

二分查找的前提:

1,针对一个已经进行了排序的数组(即里面的数据已经是有序了)

2,是连续的索引数组,比如下标为:0, 1, 2, 3, ......

比如:

$arr2 = array( 3,  4,  5,  15,  19, 21,  25,  28,  30,  30,  33,  38,  44, 51, 52, 55, 60,  77, 80, 82,  83);

 

 

函数

基本使用

函数定义形式

FUNCTION  RETURN  

 

function  函数名 (形参1,形参2.... ){

//函数体(代码块)

}

函数调用形式

本质上就是使用一个名字来达到执行其中函数中的代码的作用。通常可以分两种情形的调用:

第一种:没有返回值的函数,则调用语句是独立语句:

函数名(实参1,实参2.... ); //实参个数应该跟形参有匹配性。

第二种:有返回值的函数,则调用语句,通常会“混杂”在别的语句中,并将要将该调用语句当作一个“数据”来使用:

A$v1 =  函数名(); //赋值给其他变量;这里省略实参语法,下同。

B$v1 =  函数名() * 3 + 6; //参与运算,然后再赋值;

Cecho  函数名(); //直接输出

Decho  函数名() * 3 + 6; //参与运算,然后再输出

E$v1 = 函数名2( 函数名() , 实参2,实参3.... ); //当作实参使用

实际上,一个变量(数据)也只有这几种场合的使用情况。

函数调用流程分析

开始调用:实际参数传数据给形式参数

程序执行流程进入到函数中(一个独立的运行空间),跟全局执行空间是隔离的

按常规的程序逻辑执行函数中的代码

如果碰到return语句,则终止函数的执行,跳回函数开始调用的位置;

如果执行到函数的最后位置,也同样跳回函数开始调用的位置

其运行流程原理图如下:

 

 

 

函数参数问题

一个函数,

在定义时,有形式参数(形参);

1,形参一定是一个变量名!

2,该变量名只能是在该函数中有效的变量名;

3,而且只在该函数调用并执行时有效,函数结束,通常这些变量也就“销毁”。

在调用时,有实际参数(实参)。

实参就是一个“实际数据”,

该数据可以是一个“直接数据”(比如5”abc”),也可以是一个变量中存储的数据。

实参的作用是将其数据“赋值给”形参变量。

实参跟形参之间通常应该有个“一一对应”关系:

定义形式:   function  函数名(形参1,形参2...... ){ 。。。。}

 

调用形式:    函数名(实参1,实参2.....

默认值参数

定义一个函数的时候,在形式参数的位置,可以给形式参数设定“默认值”,此时就可以称为默认值参数。比如:

 

 

还要注意:

默认值不能是对象或资源类型;

默认值只能是常量表达式,或常量,不能是变量

即:如下语法是正确的:function f1($v1 = 3),  function f1($v1 = __LINE__),

如下语法是错误的:function f1($v1 = 3+1), $m = 3; function f1($v1 = $m),   

 

函数的参数传值问题

实际上,函数的参数传值问题,跟变量之间的传值问题,是一样的规则(模式):默认都是值传递。

如果实参本身就是“直接数据”,则不存在传值问题,而是简单的“赋值”。

传值问题只发生在实参是变量的情形:

 

 

 

我们也可以让某个参数(形参)以引用传递的方式来传值:

引用传递的形参(实参),在函数内部改变其值,在函数外面的实参,也会相应修改:

 

 

注意:如果某个形参设定为引用传递,此时,实参只能使用变量,否则出现语法错误:比如:

 

 

 

转载于:https://www.cnblogs.com/RighTgraM/p/10892844.html

你可能感兴趣的文章
iOS中设置视图的背景图片
查看>>
数据科学、机器学习和AI的区别
查看>>
oracle中to_char、to_number、to_date精要讲解
查看>>
shell+curl监控网站页面(域名访问状态),并利用sedemail发送邮件
查看>>
27.3. Browser interface for CVS and SVN version control repositories
查看>>
鼠标mouse事件冒泡处理
查看>>
朴素贝叶斯法(二)——基本方法
查看>>
JAVA - 守护线程(Daemon Thread)
查看>>
Rails 和 Sinatra 的区别是什么?
查看>>
Phonegap中插件管理
查看>>
传输一个特定的InfoObject
查看>>
spket插件安装并设置JQuery自动提示(转)
查看>>
log4net配置详细说明
查看>>
Open XML应用安全(3)隐藏数据
查看>>
λ怎么 读
查看>>
Linux上的运行的jar包
查看>>
网站如何启用SSL安全证书?IIS7启用新建Https:/
查看>>
WCF HttpBinding 安全解析 (5)Basic验证(IIS宿主)
查看>>
CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
查看>>
asp.net 调用(引用 Native dll 的)C++/CLI dll 的问题及解决
查看>>