No.11 笔记 | PHP学习指南:从函数到面向对象概览

news2024/11/24 13:53:30

 

一、PHP函数:代码复用的艺术

1. 函数的本质与魅力

  • 函数是PHP的核心力量,分为内置函数和自定义函数
  • 函数名应当简洁明了,以字母或下划线开头

2. 函数的构成要素

  • function 关键字:函数的开始标志
  • 函数名:您的函数的独特标识
  • 参数:函数的输入,可选且可多个
  • 函数体:实现特定功能的代码段
  • 返回值:通过 return 传递结果

3. 函数调用的艺术

  • 函数调用灵活,可在声明前后进行
  • 参数传递影响函数内部执行
  • 返回值可作为变量使用

4. 参数设置的多样性

  • 无参函数:适用于自给自足的功能
  • 按值传递:默认方式,函数内部操作不影响原值
  • 默认参数值:提供默认选项,增加灵活性
  • 引用传参:通过 & 符号,允许函数修改原始值
  • 类型声明:PHP 7.0+ 支持参数类型指定,提高代码健壮性

5. 变量作用域的掌控

  • 局部变量:函数内部的私有财产
  • 全局变量:函数外的公共资源
  • 静态变量:函数调用间保持状态的秘密武器

6. 函数的高级应用

  • 嵌套调用:函数中调用其他函数,模块化编程的基石
  • 递归调用:函数调用自身,解决特定问题的利器
  • 可变函数:动态决定调用哪个函数
  • 回调函数:将函数作为参数传递,提高代码灵活性
  • 匿名函数:没有名字的函数,常用作回调

二、PHP数组:数据组织的瑞士军刀

1. 数组的本质

  • 存储多个值的强大容器
  • 由键(Key)和值(Value)组成的元素集合

2. 数组的两大类型

  • 索引数组:以数字作为键,从0开始
  • 关联数组:以字符串作为键,更具描述性

3. 创建和访问数组

  • 使用 array() 或 [] 创建
  • 通过 $array[key] 访问元素

4. 数组的遍历与操作

  • for 循环:适用于索引数组
  • foreach 循环:万能遍历器,特别适合关联数组
  • 数组操作符:联合、比较等高级操作

5. 数组函数宝库

  • 元素操作:push、pop、shift、unshift 等
  • 检索函数:in_array、array_search 等
  • 变形函数:array_map、array_filter、array_reduce 等

三、面向对象编程:PHP的现代武器

1. OOP的核心理念

  • 封装:将数据和操作绑定在一起
  • 继承:代码复用的有力工具
  • 多态:同一方法,不同表现

2. 类与对象的基础

  • 构造函数:对象初始化的关键
  • 继承:使用 extends 关键字
  • 方法重写:子类定制父类行为

四、PHP与Web交互:连接现实的桥梁

1. 超全局变量:PHP的通信工具

  • $_GET:获取URL参数
  • $_POST:处理表单提交
  • $_REQUEST:GET和POST的综合体

2. 常见回调函数

  1. call_user_func_array():调用一个用户自定义函数,并将参数作为数组传递。
  2. call_user_func():调用用户自定义的回调函数。
  3. array_filter():使用回调函数过滤数组中的元素。
  4. array_walk():对数组的每个元素应用用户函数。
  5. array_map():将回调函数应用于数组的每个元素。
  6. register_shutdown_function():注册一个函数,在脚本执行完成或退出时调用。
  7. register_tick_function():注册一个函数,在每次 tick 发生时调用。
  8. filter_var():使用特定的过滤器过滤一个变量。
  9. filter_var_array():使用指定的过滤器过滤数组中的多个变量。
  10. uasort () 和 uksort ():使用用户定义的比较函数对数组进行排序。
  11. array_reduce():用回调函数迭代地将数组简化为一个单一的值。
  12. array_walk_recursive():递归地对数组中的每个元素应用回调函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2196491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Git原理与使用】远程操作标签管理

远程操作&&标签管理 1.理解分布式版本控制系统2.新建远程仓库3.克隆远程仓库4.向远程仓库推送5.拉取远程仓库6.配置 Git7.配置命令别名8.标签管理8.1创建标签8.2操作标签 点赞👍👍收藏🌟🌟关注💖💖…

把当抠门程序员,遇到了免费AI大模型

这篇想和大家分享一下&#xff0c;一个抠门的程序员和一个免费的AI大模型的故事。 “抠门程序员<–>免费大模型”&#xff0c;让我看看&#xff0c;能不能擦出马内的火花。 故事的开始 不知道有没有程序员和我一样&#xff0c;付费的东西&#xff0c;都会省着点开。什…

远程访问服务是什么?如何通过节点小宝远程访问办公室电脑?

在家办公若能各安其位、高效完成任务&#xff0c;实为美事。然而&#xff0c;现实往往不尽如人意&#xff0c;偶尔需用到办公室电脑上的资料&#xff0c;这时便需依赖远程访问服务的助力。那么&#xff0c;远程访问服务究竟是何方神圣&#xff1f;又该如何借助节点小宝实现对办…

解锁空间距离计算的多种方式-含前端、空间数据库、后端

目录 前言 一、空间数据库求解 1、PostGIS实现 二、GIS前端组件求解 1、Leaflet.js距离测算 2、Turf.js前端计算 三、后台距离计算生成 1、欧式距离 2、Haversice球面距离 3、GeoTools距离计算 4、Gdal距离生成 5、geodesy距离计算 四、成果与生成对比 1、Java不…

CSRF | POST 型 CSRF 漏洞攻击

关注这个漏洞的其他相关笔记&#xff1a;CSRF 漏洞 - 学习手册-CSDN博客 0x01&#xff1a;POST 型 CSRF 漏洞攻击 —— 理论篇 POST 型 CSRF 漏洞是指攻击者通过构造恶意的 HTTP POST 请求&#xff0c;利用用户的登录状态&#xff0c;在用户不知情的情况下&#xff0c;诱使浏览…

Mythical Beings:Web3游戏如何平衡创造内容、关注度与实现盈利的不可能三角

Web3游戏自其诞生以来&#xff0c;以去中心化和独特的代币经济体系迅速引起关注。然而&#xff0c;如何在创造内容、吸引用户和实现盈利之间达到平衡&#xff0c;始终是Web3游戏面临的核心挑战。Mythical Beings作为一款Web3卡牌游戏&#xff0c;通过创新设计和独特机制&#x…

java集合框架都有哪些

Java集合框架&#xff08;Java Collections Framework&#xff09;是Java提供的一套设计良好的支持对一组对象进行操作的接口和类。这些接口和类定义了如何添加、删除、遍历和搜索集合中的元素。Java集合框架主要包括以下几个部分&#xff1a; 接口&#xff1a; Collection&…

昆虫分类与检测系统源码分享

昆虫分类与检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

成都睿明智科技有限公司抖音电商服务佼佼者

在当今这个数字化浪潮汹涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多商家竞相追逐的新蓝海。而在这场电商盛宴中&#xff0c;专业的服务商如同灯塔一般&#xff0c;为迷茫的商家指引方向。今天&#xff0c;我们就来深入探讨一家备受瞩目的服务商—…

Qt-QSpacerItem布局相关控件(45)

目录 描述 属性 使用 控件小结 描述 使⽤布局管理器的时候,可能需要在控件之间,添加⼀段空⽩.就可以使⽤ QSpacerItem 来表⽰ 属性 width宽度height⾼度hData⽔平⽅向的 sizePolicy • QSizePolicy::Ignored : 忽略控件的尺⼨&#xff0c;不对布局产⽣影响。 • QSizePol…

业务封装与映射 -- FlexE

什么是FlexE FlexE&#xff08;灵活以太网技术&#xff0c;Flexible Ethernet&#xff09;是由OIF 定义的灵活以太客户端接口标准&#xff0c; 是承载网实现业务隔离和网络分片的一种接口技术&#xff0c;支持路由器和光传输设备之间的灵活以太网连接&#xff0c;实现接口侧业务…

牛顿法、L-M算法

在进行解方程的时候&#xff0c;如下所示方程 其中&#xff0c;相应的k11、k12、k21、k22都是已知常量&#xff0c;可以见到其是一个非线性方程。关于非线程方程的求解&#xff0c;我看到网上有两种方法&#xff0c;牛顿法与L-M算法。 1.牛顿法 之前貌似学过&#xff0c;学过…

基于SSM的服装自销电商平台设计

文未可获取一份本项目的java源码和数据库参考。 一、选题背景 在当今这个信息时代&#xff0c;“网上购物”这种购物方式已经为越来越多的人所接受&#xff0c;越来越多的人选择在网络上购买衣服&#xff0c;方便快捷且实惠。在这种背景之下&#xff0c;一个安全稳定并且强大…

Windows下的python安装教程_2024年10月最新最详细的安装指南

文章目录 前言一、下载python二、安装python三、验证环境四、配置环境变量&#xff08;可选&#xff09;总结 前言 Python 是一种广泛使用的高级编程语言&#xff0c;以其简洁易读的语法和强大的库支持而著称。无论你是初学者还是经验丰富的开发者&#xff0c;安装 Python 都是…

【Canvas与标牌】盾形银底红带Best Quality Premium标牌

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>BestQulityPremium金属牌重制版Draft2</title><style type&…

【YOLOv8实时产品缺陷检测】

YOLOv8应用于产品缺陷检测实例 项目概况项目实现YOLOv8安装及模型训练关键代码展示动态效果展示 项目概况 本项目是应用YOLOv8框架实现训练自定义模型实现单一零件的缺陷检测&#xff0c;软件界面由PyQt5实现。 功能已正式使用&#xff0c;识别效果达到预期。 项目实现 项目…

刷题 二分查找

二分查找 二分查找的本质就是 缩小有效范围 需要注意&#xff1a; int mid (left right) / 2; int mid left (right - left) / 2; 防止溢出 hot100 - 二分查找 ⭐️35. 搜索插入位置 找到第一个大于等于 target 的值 class Solution { public:// 目标: 找到第一个大于…

PD取电诱骗协议芯片支持PD3.1 支持大电流、大功率(28V5A 140W)快速充电。

PD取电快充协议芯片XSP16是受电端的一种PD取电快充协议芯片&#xff0c;它支持PD2.0/3.0&#xff0c;PD3.1、QC2.0/3.0、华为SCP/FCP、三星AFC等快充协议。支持UART串口发送电压/电流消息&#xff0c;供外部MCU读取&#xff0c;以便适应不同的负载。支持从充电器、车充、充电宝…

计算机基础知识:计算机中丢失 msvcr110.dll怎么修复?

1. msvcp110.dll 介绍 1.1 定义&#xff1a;Microsoft Visual C 2012的一部分 msvcp110.dll是Microsoft Visual C 2012 Redistributable Package的一部分&#xff0c;这是一个运行时库文件&#xff0c;包含了Microsoft Visual C 2012编译器所构建程序所需的函数和资源。 1.2…

使用Markdown Here插件生成邮件样式

使用Markdown Here插件生成邮件样式 通常大学生们都有给老师、助教使用邮箱发送作业的情景&#xff0c;怎样让自己发送的邮件美观呢&#xff0c;我们可以使用Markdown Here插件美化 以下为结果展示 Markdown Here 插件 官网地址 html代码 <font size"7", face…