php基础学习之函数

这篇具有很好参考价值的文章主要介绍了php基础学习之函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本概念

是一种语法结构,将实现某一个功能的代码块封装到一个结构中,从而实现代码的重复利用


php函数的定义语法

(与C++/Java很类似,区别在于没有数据类型,因为php是弱类型语言)

function 函数名(参数){

        //函数体

        return 返回值;

}

下图展示了一个实现加法功能的函数

php基础学习之函数,php基础学习,php,学习笔记

 


php函数命名规范

由字母、数字、下划线组成,不能以数字开头

习惯采用驼峰法下划线法来命名

在一个脚本周期中,不允许出现同名函数(在一个脚本中,包含的文件也属于该脚本,也不允许出现同名函数,因此在一个多文件的项目中都不要使用同名函数!)


php函数参数

和C++/Java一样,php的函数也分形参实参两种参数

值传递

将实参传递给函数,函数在接收参数时会将实参的值赋值给形参,相当于拷贝了一份新值

  • 形参,不具有实际意义,在函数定义时使用的参数
  • 实参,具有实际数据意义的参数,在函数调用时使用的参数

形参是实参的载体,实参在调用时通常需要传入到函数内部参与运算,那么需要在函数内部找到实际数据所在的位置才能找到数据本身

实际调用的时候,将数据以实参的形式传递给形参,给形参赋值,从而使得函数内部可以用到外部数据

引用(址)传递

将实际参数在内存中的地址传递给函数,以便在函数中能够对实际参数的值进行改变

注意,引用传递的参数只能是变量不能是字面量,因为变量在内存中才有地址

语法:在需要引用传递的参数之前加上&符号

默认值

php函数在定义的时候,可以给形参进行初始赋值,如果实际调用时没有提供对应的这个参数,那么形参就会使用函数定义时给的初始默认值来进行运算

需要注意的是默认值只能从右往前给,不能是更左边的参数给了默认值,更右边的参数却没有默认值

php基础学习之函数,php基础学习,php,学习笔记

 php基础学习之函数,php基础学习,php,学习笔记

php基础学习之函数,php基础学习,php,学习笔记

 


 


php函数的特点(相对于其余编程语言的特点)

  • 只要系统在内存中能够找到对应的函数,就可以执行(函数的调用可以在函数定义之前,而且不必提前声明(C/C++需要提前声明函数))
  • 在php中允许实参个数大于形参个数,尽管函数不用(不明白这个设计有什么用,或许能做为渗透测试的漏洞)
  • 虽然php脚本没有主函数这一概念,但是也可以在脚本中任意位置使用return返回值,该返回值将被提交给包含此脚本的文件,return之后的代码将不会被执行

php基础学习之函数,php基础学习,php,学习笔记文章来源地址https://www.toymoban.com/news/detail-829757.html

到了这里,关于php基础学习之函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记_基础篇(六)_Set集合,函数,深入拷贝,浅入拷贝,文件处理

    a、set集合,是一个无序且不重复的元素集合 set b、数据类型模块举例 a、数字和字符串 对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。 b、其他基本数据类型 对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地

    2024年02月12日
    浏览(41)
  • php基础学习之分支结构和循环结构(不细讲,来对比一下和两大常用高级编程语言(C++/Java)的细微区别以便记忆)

    编程语言常见分支结构有: if 语句 if-else 语句 if-elseif-else 语句 switch 语句 其中, 除了 if-elseif-else 语句外,另外3中分支语句在php中和C++/Java是一模一样的! 而 if-elseif-else 的唯一不同点就在,【 elseif 】这个既可以合一起写(C++/Java不可以),也可以拆开写成【 else if

    2024年02月19日
    浏览(48)
  • 深度学习笔记(四)——使用TF2构建基础网络的常用函数+简单ML分类实现

    文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 1、张量处理类 强制数据类型转换: 查找数据中的最小值和最大值: 上一行例子中是对整个张量查找,也按照一定的方向查找

    2024年01月16日
    浏览(44)
  • 学习笔记之 机器学习之预测雾霾

    基础的Encoder-Decoder是存在很多弊端的,最大的问题就是信息丢失。Encoder将输入编码为固定大小的向量的过程实际上是一个“信息有损的压缩过程”,如果信息量越大,那么这个转化向量的过程对信息的损失就越大,同时,随着序列长度(sequence length)的增加,意味着时间维度

    2024年01月23日
    浏览(39)
  • 全文检索学习之ElasticSearch学习笔记

    在非关系型数据库中,数据是非结构化的,如果直接去查找效率极低,全文检索将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。索引就是从非结构化数据中提取出的然后重新组

    2023年04月11日
    浏览(54)
  • 深度学习之PyTorch实战(5)——对CrossEntropyLoss损失函数的理解与学习

      其实这个笔记起源于一个报错,报错内容也很简单,希望传入一个三维的tensor,但是得到了一个四维。 查看代码报错点,是出现在pytorch计算交叉熵损失的代码。其实在自己手写写语义分割的代码之前,我一直以为自己是对交叉熵损失完全了解的。但是实际上还是有一些些

    2023年04月09日
    浏览(43)
  • CTF笔记:PHP函数is_numeric()绕过

    在做CTF过程中遇到的is_numeric()函数,作用是判断输入是不是数字或数字字符串。 思路1:数值-非数值 原题是[极客大挑战 2019]BuyFlag,判断代码如下: 密码是404,但是不能输入数字,所以要考虑绕过的问题,这里记录解题思路。 上网搜了一下,可以借助url编码中的空字符,例

    2024年02月08日
    浏览(41)
  • 人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

    我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵

    2024年02月08日
    浏览(58)
  • 人工智能基础_机器学习007_高斯分布_概率计算_最小二乘法推导_得出损失函数---人工智能工作笔记0047

    这个不分也是挺难的,但是之前有详细的,解释了,之前的文章中有, 那么这里会简单提一下,然后,继续向下学习 首先我们要知道高斯分布,也就是,正太分布, 这个可以预测x在多少的时候,概率最大 要知道在概率分布这个,高斯分布公式中,u代表平均值,然后西格玛代表标准差,知道了

    2024年02月07日
    浏览(74)
  • WEB攻防基础|PHP|过滤函数intval()绕过原理及方法

    用于获取变量的整数值;可使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 注意: intval() 不能用于 object,否则会产生NOTICE 错误并返回 1。 语法结构: $var ,需要被转换成integer的值; $base ,决定转化时可所使用的进制。 如果 $base值为0, 通

    2024年01月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包