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

/* 【数组函数】 */

//统计计算

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检查数组中是否存在某个值

boolin_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功能相同

boolarray_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从结果集中取得一行作为关联数组,或数字数组,或二者兼有

arraymysql_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,详细见手册

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • * 【goto】5.3+ 版本 */ 用来跳转到程序中的某一指定位置 该目标位置可以用目标名称加上冒号来标记。 P...
    Omit03阅读 532评论 0 0
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,350评论 0 20
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 1,980评论 1 24
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • 真的不知道个该说什么,总觉得自己要说的话很多。可是明明想记录下来却不知如何动笔。虽然已经过了爱做梦的年纪,可是我不...
    Koreyoshi陌阅读 276评论 0 0