/* 【数组函数】 *///统计计算
count        计算数组中的单元数目或对象中的属性个数
array_count_values  统计数组中所有的值出现的次数
array_product       计算数组中所有值的乘积
array_sum           计算数组中所有值的和
range        建立一个包含指定范围单元的数组array_chunk        将一个数组分割成多个
   array array_chunk(array $input, int $size[, bool $preserve_keys]) array_filter    用回调函数过滤数组中的单元array_slice     从数组中取出一段
   array array_slice($arr, $offset [,$len [,$preserve_keys]])array_keys        返回数组中所有的键名
   array array_keys(array $input[, mixed $search_value[, bool $strict]] )
    如果指定了可选参数 search_value,则只返回该值的键名。否则input数组中的所有键名都会被返回。array_values    返回数组中所有的值,并建立数字索引

array_merge合并一个或多个数组

一个数组中的值附加在前一个数组的后面。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。

如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。array_merge_recursive    递归地合并一个或多个数组

//搜索

in_array            检查数组中是否存在某个值

bool in_array(mixed $needle, array $haystack[, bool$strict])array_key_exists    检查给定的键名或索引是否存在于数组中

isset()对于数组中为NULL的值不会返回TRUE,而 array_key_exists()会array_search        在数组中搜索给定的值,如果成功则返回相应的键名

array_combine    创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

如果两个数组的单元数不同或者数组为空时返回FALSE。array_rand        从数组中随机取出一个或多个单元,返回键名或键名组成的数组,下标是自然排序的

array_fill      用给定的值填充数组

array_fill($start, $num, $value)array_flip      交换数组中的键和值array_pad       用值将数组填补到指定长度array_reverse   返回一个单元顺序相反的数组array_unique    移除数组中重复的值array_splice    把数组中的一部分去掉并用其它值取代

implode            将数组元素值用某个字符串连接成字符串explode($delimiter,$str [,$limit])    //使用一个字符串分割另一个字符串

$delimiter不能为空字符串""

array_map        将回调函数作用到给定数组的单元上,只能处理元素值,可以处理多个数组

如果callback参数设为null,则合并多个数组为一个多维数组

array_walk        对数组中的每个成员应用用户函数,只能处理一个数组,键和值均可处理,与foreach功能相同

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

//栈:

后进先出入栈和出栈会重新分配索引下标array_push        将一个或多个单元压入数组的末尾(入栈)array_pop        将数组最后一个单元弹出(出栈)        使用此函数后会重置(reset())array 指针。

//队列:

先进先出队列函数会重新分配索引下标array_unshift    在数组开头插入一个或多个单元array_shift        将数组开头的单元移出数组            使用此函数后会重置(reset())array 指针。

//排序函数

sort            对数组排序rsort            对数组逆向排序asort            对数组进行排序并保持索引关系arsort            对数组进行逆向排序并保持索引关系ksort            对数组按照键名排序krsort            对数组按照键名逆向排序usort            使用用户自定义的比较函数对数组中的值进行排序uksort            使用用户自定义的比较函数对数组中的键名进行排序uasort            使用用户自定义的比较函数对数组中的值进行排序并保持索引关联natsort            用用“自然排序”算法对数组排序natcasesort        用“自然排序”算法对数组进行不区分大小写字母的排序array_multisort 对多个数组或多维数组进行排序shuffle            将数组打乱

引用传递参数,返回bool值。

重新赋予索引键名,删除原有键名

//差集

array_udiff_assoc   带索引检查计算数组的差集,用回调函数比较数据array_udiff_uassoc  带索引检查计算数组的差集,用回调函数比较数据和索引array_udiff         用回调函数比较数据来计算数组的差集array_diff_assoc    带索引检查计算数组的差集

array_diff_key      使用键名比较计算数组的差集array_diff_uassoc   用用户提供的回调函数做索引检查来计算数组的差集

array_diff_ukey     用回调函数对键名比较计算数组的差集array_diff          计算数组的差集//交集array_intersect_assoc 带索引检查计算数组的交集

array_intersect_key 使用键名比较计算数组的交集array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引

array_intersect_ukey 用回调函数比较键名来计算数组的交集array_intersect 计算数组的交集array_key_exists 用回调函数比较键名来计算数组的交集array_uintersect_assoc 带索引检查计算数组的交集,用回调函数比较数据array_uintersect 计算数组的交集,用回调函数比较数据

extract($arr [,$type [,$prefix]])   从数组中将变量导入到当前的符号表(接受结合数组$arr作为参数并将键名当作变量名,值作为变量的值)compact($var [,...])   建立一个数组,包括变量名和它们的值(变量名成为键名而变量的内容成为该键的值)

/* 【伪类型】 */

mixed        说明一个参数可以接受多种不同的(但并不必须是所有的)类型。number        说明一个参数可以是 integer 或者 float。callback    回调函数

void       void作为返回类型意味着函数的返回值是无用的。

void作为参数列表意味着函数不接受任何参数。

/* 【数据库操作】 */

#连接认证mysql_connect        连接并认证数据库#发送SQL语句,接收执行结果mysql_query            发送SQL语句

仅对select, show, explain, describe语句执行成功返回一个资源标识符,其他语句成功返回true。执行失败均返回false。#处理结果mysql_fetch_assoc    从结果集中取得一行作为关联数组

每次只取回一条,类似each

结果集中记录指针mysql_fetch_row        从结果集中取得一行作为枚举数组mysql_fetch_array    从结果集中取得一行作为关联数组,或数字数组,或二者兼有

array mysql_fetch_array ( resource $result [, int $ result_type  ] )

可选参数result_type可选值为:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH(默认)mysql_free_result    释放结果内存#关闭链接mysql_close            关闭连接

/* 【类和对象】 */

# 成员:    类成员:类常量、静态属性、静态方法

对象成员:非静态属性、非静态方法

# 除此外,类不能包含任何其他东西!!!

# 类名、方法名、属性名均不区分大小写

# $this代表本对象,self代表本类,parent代表父类

# 类和函数均可被事先编译(仅作为最外层时)

# 类的定义必须在单一的PHP区块内,不能被多个PHP标签分割

// 构造方法

- 具有构造函数的类会在每次创建新对象时先调用此方法

void __construct([ mixed $args [, $... ]] )- 构造方法所需参数由new实例化对象时,给类增加参数值。- 构造方法也可以被手动调用。- 5.3.3版本以前,支持于类名同名的方法作为构造方法。- 两种冲突时,__construct 优先

// 析构方法

- 析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

void __destruct( void )# 作用:释放对象所占用的资源

# 调用的时机

- 脚本结束时所有资源均被释放,包括对象

- 手动删除对象时

- 保存对象的变量被赋予新值时(任何值,包括null)

- 在使用exit()终止脚本运行时也会被调用

// 静态成员(static关键字)

- 声明类成员或方法为static,就可以不实例化类而直接访问。

- 静态成员(属性或方法)均属于类,故不能通过$this或->访问。

- 静态成员是所有对象共享,属于类。

- 静态成员用类调用,非静态成员用对象调用。# 静态属性

- 静态属性不可以由对象通过->操作符来访问。

- 静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。 所以你可以把静态属性初始化为整型或数组,但不能指向另一个变量或函数返回值,也不能指向一个对象。# 静态方法

- 由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。

- 用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。

// 访问解析操作符(::)

- 可以用于访问静态成员、方法和常量,还可以用于覆盖类中的成员和方法。

- 当在类的外部访问这些静态成员、方法和常量时,必须使用类的名字。

- self 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。

// 访问辨析

- 对象成员,内部通过$this指定,外部通过对象名指定,均用->访问,访问属性时不需加$。

对象名->属性名    对象名->方法名()    $this->属性名        $this->方法名()- 类成员,内部通过self或parent指定,外部通过类名指定,均用::访问,访问属性时需加$。

类名::$属性名    类名::方法名()       self::$属性名        self::方法名()- 特殊:也可以通过对象访问类成员。(不建议)

对象名::$类属性名    $this::$类属性名    对象名::$类方法名()    $this::类方法名()# 对象成员访问用->,类成员访问用::

- 无论是静态方法还是非静态方法,均可通过类或对象进行访问。- 静态属性通过类访问,静态方法通过对象访问。- 只有使用对象调用非静态方法时,$this才可以使用!- 静态方法不可使用$this。- 类可以调用对象方法,但注意方法内不能有$this。- 非静态方法可以调用静态属性或静态方法,反之不可以。

// 类常量

- 常量的值将始终保持不变。- 在定义和使用常量的时候不需要使用$符号。- 常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。# 定义:const 常量名 = 常量值;

- 不需要加public等访问修饰限定符- 类常量属于类,使用类访问,类名::类常量 或 self::类常量

// 自动加载对象

- 在试图使用尚未被定义的类时自动调用 __autoload 函数- 自动加载使用到的类名文件(根据类名找相应名称的文件,故需类名与类文件名一致)- 每个需要加载类的文件都需要存在__autoload函数-将__autoload函数写入单独的文件,每个需要用到类的文件再require该函数文件- __autoload 参数是类名function __autoload($class_name) {

require_once $_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";

}

// $_SERVER["DOCUMENT_ROOT"] 当前运行脚本所在的文档根目录

- 可以通过类名,来推导出类所在的文件名!- 如果一个项目存在多个自动加载函数时,定义一个可以完成加载的普通函数,并在函数之前使用spl_autoload_register注册该函数。# spl_autoload_register

- 注册__autoload()函数

bool spl_autoload_register ([ callback $autoload_function ] )- 可以注册多个自动加载函数,先注册的先执行- 一旦注册自动加载函数,__autoload就失效。- 注册函数时,参数为函数名(注意加引号);注册方法时,参数为数组# 注册类或对象的方法为自动加载方法时,参数需为数组:

spl_autoload_register(array(__CLASS__, '__autoload'));

__CLASS__表示当前类名,若是对象可用$this,详细见手册

转载于:https://www.cnblogs.com/testsec/p/6103381.html

PHP最全笔记(三)(值得收藏,不时翻看一下)相关推荐

  1. Windows常用必备软件整理,太全了,值得收藏

    目录 1.Office系列 2.杀毒软件 3.视频播放和视频处理 4.音乐播放 5.压缩解压 6.输入法 7.PDF阅读软件 8.文件加密 9.网盘 10.社交聊天 11.日常办公软件 ‍12.图片/ ...

  2. 工业机器人技术全解析,值得收藏!

    来源:先进制造业 一.工业机器人的发展背景 1920年,捷克剧作家卡里洛·奇别克在其科幻剧本<罗萨姆万能机器人制造公司>(Rossum's Universal Robots)首次使用了RO ...

  3. 电脑常见的VGA、DVI、PS/2、USB等接口知识笔记,值得收藏!

    我们经常见到电脑和网络设备上都少不了VGA.DVI.PS/2.USB等常用接口,那些接口里面有多个针脚,他们每个针脚都有自己的用途,今天电脑学习小编就带大家一起看看这些接口神秘用途. 现在很多朋友们可 ...

  4. 2017年你错过了哪些AI圈大事?最全盘点,值得收藏!

    大数据文摘作品 编译:彭湘伟.吕征达.小明同学.林海.Yawei Xia 假设你在2017年昏睡了一年,忽然惊醒的时候,想要了解这个世界在今年有哪些最值得骄傲的成就,这篇文章值得你花几十分钟读一读. ...

  5. python3库下载_下载安装Python第三方库的方法,最全方式,值得收藏

    一.利用Python中的pip进行第三方库的下载 首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和管理 Python包的工具,可以对python的包进行管理和升级等操作. 具体的 ...

  6. 7805输入电流有要求吗_PLC输入输出接线全解析,值得收藏!

    点击蓝字 关注我们 有时我们关注的公众号消息比较多,错过了一些自己喜欢的消息,不能及时看到工控论坛的推送,我们可以给公众号加星标或置顶.那如何星标置顶呢?[打开一篇工控论坛公众号的文章,点击文章标题下 ...

  7. jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏

    在上一篇:主要介绍线程组.HTTP请求默认值.用户定义的变量.固定定时器的应用场景及实战. 以下主要介绍正则表达式提取器.调式取样器(Debug Sampler).响应断言.HTTP信息头管理器的应用 ...

  8. kdj指标主要看哪个值_终于有人把KDJ指标总结全了,值得收藏

    2018年09月27日 08:48:00 KDJ指标 一.KDJ操盘原理 首先我们先来看下什么叫:KDJ指标 KDJ指标又叫随机指标,由K线.D线和J线三条曲线所组成,是一种中短线的技术指标分析指标. ...

  9. 网络工程师技能知识图谱,超全超细致,值得收藏

    技术推动了时代变革,互联网则加速了这场变革.随着行业技术的迭代周期越来越短,IP与计算机网络新技术层出不穷,更加需要我们及时更新升级自身的技术储备. 经过多方努力,我们极(sang)度(xin)克(b ...

  10. 电脑技巧:电脑常用快捷键大全,值得收藏!

    键盘里的秘密,都在这里了! Windows 快捷键 Windows+D 显示桌面 Windows+M 最小化所有窗口 Windows+CTRL+F  查找电脑 Windows+F  查找文件或文件夹 ...

最新文章

  1. 怎样学python最快_如何少走弯路,快速学会Python
  2. linux y脚本,Linux中脚本的使用方法
  3. 三角形一点到三边距离最小_高中数学:利用正弦定理、余弦定理求解三角形基础题...
  4. 小学5年级计算机考试作文,我的小学老师五年级优秀作文(通用10篇)
  5. ZNZD平台vue项目
  6. Orleans 3.0 发布,微软下一代云计算编程模式
  7. 如何把linux生成镜像,如何把当前ubuntu系统做成镜像
  8. C语言默认参数值的实现
  9. C++:数组的输入、排序与去重操作
  10. DoIP协议:通用DoIP首部否定确认码02和03的区别
  11. http状态码大全整理
  12. libaio在mysql中的作用,ubuntu安裝mysql遇到的坑----解決Mysql報錯缺少libaio.so.1
  13. python语言程序设计基础笔记(三)计算机思维
  14. 服务器raid1怎么重装系统,win7 raid1重装系统图文教程
  15. 以本职工作为挡箭牌推托,久而久之,你就只能原地踏步。
  16. 必须要了解股权设计的四大核心
  17. android五子棋源代码,Android五子棋游戏源码详解
  18. 【跨平台编程工具】XERO CODER 4.2.8.0 For x86 Cracked By PiaoYun/P.Y.G 优雅破解
  19. 智能网联汽车 自动驾驶地图数据质量规范
  20. 课程设计-商店管理系统(四)----数据库的建立

热门文章

  1. stata学习笔记(三):计算五年内的ROA标准差所用到的一些知识
  2. Eclipse设置护眼背景
  3. hdu 1232 畅通工程(并查集)
  4. Tapestry5之多个方法匹配
  5. matlab--sum函数用法
  6. 这几条Mac技巧可能在你使用mac时锦上添花
  7. react-router中进行路由控制
  8. POJ NOI MATH-7827 质数的和与积
  9. 读者教育浏览器兼容解决方法
  10. Together与Visual.Studio.NET的结合使用(一)