首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php常用函数总结有哪些

一、数字函数ceil() 进一取整示例:ceil(1.1) 结果为2 abs() 绝对值示例:abs(-1) 结果为1 rand() 随机数示例:rand(1. 100) 1到100 以内随机数 mt_rand... 大小写敏感示例:strpos("Hello", "H") 结果: 0strpos("Hello", "J") 结果:false md5() 简单加密 不可逆(就是不能通过加密值推算出加密前值)示例...:md5(123); 结果为: 自己测去 vat_dump() 打印数据 一般用于断点使用 strlens() 计算字符串长度示例:strlens('123123') 结果:6 trim() 去除字符串两侧空白字符或其他预定义字符...array_search 搜索数组是否有值示例:array_search([1, 3], 3) 结果:1 返回数组key in_array 检查数组是否存在某个值示例:in_array(1, ...[1, 2, 3]) 结果:true array_unique 删除数组重复值示例:array_unique([1,3,3,4]) 结果:[1, 3, 4] implode 连接数组示例:implode

20450

技术分享 | MySQL 数据库巡检需要做些什么?

今天,想写下这篇文章,把我这些个人经验和想法总结下来,也为了证明,即使巡检那么一件事,只要你愿意,也能得出个最佳实践。 最佳实践意义是什么?...并不是所有人都对 MySQL 那么熟悉,最佳实践以文档形式沉淀下来,可以有效避免犯错,也能最大限度避免因人员流失而带来巡检质量降低。...这里一并查找是否有实例使用到 swap,如果内存充裕而使用到 swap,那很大概率是因为未正确设置 numa 或 vm.swappiness 导致。...实例状态,一般来说就是检查 mysqld 存活,有条件的话可以分析其是否健康。(至于怎么判断其是否健康,这里不扩展了) 高可用状态,通过巡检证明数据库是"切换"状态。...随着硬件提升,我最新观点是 MySQL 实例 2T 以内,单表体积 100G 以内我都可以接受。当然了,我是从运维角度考虑,性能角度的话主要是看业务是否能接受。

1.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

爬虫+反爬虫+js代码混淆

可以检测访问源Referer来进行过滤,静态资源可以在nginx或apache中直接配置Referer检查,动态资源可以使用$_SERVER[‘HTTP_REFERER’]检查Referer....http是无状态协议,不能区分用户是否是从同一个网站而来,同一个用户请求不同页面不能看作是同一个用户 cookie以文本格式存储在浏览器上,存储量有限 session存储在服务端,可以无限量存储并且比...)0 (作为整数0)0.0 (作为浮点数0)“0” (作为字符串0)NULLFALSEarray() (一个空数组)var; (一个声明了,但是没有值变量) 如何在页面之间传递变量?...,抽象类是用extends关键字让子类继承父类后,在子类实现详细抽象方法 接口不能有属性、普通方法、构造函数,可以有常量,抽象类可以有属性、普通方法、抽象方法和构造函数 接口中方法都是public类型...,抽象类中方法可以使用private、protected或public 抽象类抽象方法一定要用abstract来声明,而接口则不需要 一个类可以同时实现多个接口,但是只能实现一个抽象类 相同:函数体内不能写任何东西

12.3K20

全新PDO数据库操作类(仅适用Mysql)

② 部分参数可以数组代替   比如这样一句sql delete from tb_member where 1=1 and tbid = 1 and username = "hooray"   在原先调用方法时候...,需要手动拼装好where条件,这样操作成本很高,现在完全可以用这种形式 $where = array( 'tbid = 1', 'username = "hooray"' ); $db->delete...(1, 0, 'tb_member', $where);   条件再多也不会打乱你思路。...同样,不仅仅是where参数,update里set也可以以这种形式(具体参见完整源码) $set = array('username = "123"', 'type = 1', 'lastlogindt...有时候,sql过于复杂,导致无法使用类里提供方法去组装sql语句,这时候就需要一个功能,就是能直接传入我已经组装好sql语句执行,并返回信息。

58620

Effective Java要点笔记

再讲单例实现 常见有三种 枚举 静态属性或静态块 双重检查锁 不需要实例化类 尽量把构造器私有化,比如一些工具类,避免不必要对象意外创建 对象如果重用,就少创建点 但是如果因为多创建了实例而提高了程序清晰性...类每个实例都只与他自身相等 类是私有的或者是包级私有的,那么可以确定它equals方法永远不会被调用,这时候需要覆盖equals方法,防止被意外调用 如果要判断“逻辑相等“,且父类equals做不到这个功能时候需要覆写...equels方法诀窍: == 判断是否是同一个对象引用 instanceof 进行类型检查 把参数转换为正确类型 检查参数每个域是否一一对应equals 覆盖equals必须覆盖hashCode...,使访问范围更小 实例域和静态域绝不能是公有的 对于final数组可以这样控制权限 private static final Thing[] PRIVATE_VALUES = {...}; public...要使局部变量作用域最小化,最佳实践是在第一次使用地方声明它 异常 只针对异常情况才使用异常, 不能利用异常来做其它投机取巧逻辑 对于可恢复情况且允许调用者能够进行适当恢复使用受检异常,

41210

聊聊面试必考-递归思想与实战

这个时候,你可以再拿 n=3,n=4来验证一下,这个终止条件是否足够并且正确。...我们可以使用一个数据结构(注:这个数据结构可以有很多种,比如 js 中可以用 set, weakMap,甚至可以数组。...java 中也可以好多种散列表,爱思考童鞋可以想一下哪一种更优秀哦,后面深拷贝例子我也会具体讲)来存储求解过 f(k),再次调用时候,判断数据结构中是否存在,如果有直接从散列表中取值返回,不需要重复计算...每次拷贝发生事: 检查 map 中有无克隆过对象 有,直接返回 没有, 将当前对象作为 key,克隆对象作为 value 进行存储 继续克隆 在这段代码中我们使用了 weakMap ,用来防止因循环引用而出现栈...在计算机程序设计中,弱引用与强引用相对,是指不能确保其引用对象不会被垃圾回收器回收引用。一个对象若只被 弱引用 所引用,则被认为是不可访问(或弱访问),并因此可能在任何时刻被回收。

59120

聊聊面试必考-递归思想与实战

这个时候,你可以再拿 n=3,n=4来验证一下,这个终止条件是否足够并且正确。...我们可以使用一个数据结构(注:这个数据结构可以有很多种,比如 js 中可以用 set, weakMap,甚至可以数组。...java 中也可以好多种散列表,爱思考童鞋可以想一下哪一种更优秀哦,后面深拷贝例子我也会具体讲)来存储求解过 f(k),再次调用时候,判断数据结构中是否存在,如果有直接从散列表中取值返回,不需要重复计算...每次拷贝发生事: 检查 map 中有无克隆过对象 有,直接返回 没有, 将当前对象作为 key,克隆对象作为 value 进行存储 继续克隆 在这段代码中我们使用了 weakMap ,用来防止因循环引用而出现栈...在计算机程序设计中,弱引用与强引用相对,是指不能确保其引用对象不会被垃圾回收器回收引用。一个对象若只被 弱引用 所引用,则被认为是不可访问(或弱访问),并因此可能在任何时刻被回收。

92821

百度Java面试题前200页都在这里了

不能声明 main() 方法为非静态 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法调用 静态变量在什么时候加载?编译期还是运行期?...为什么静态方法不能访问成员变量 switch switch 语句中表达式可以是什么类型数据 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上 while 循环和...如果该值大于 byte 类型范围,将会出现什么现象 能在不进行强制转换情况下将一个 double 值赋值给 long 类型变量吗 类型向下转换是什么 数组 如何权衡是使用无序数组还是有序数组...当一个对象被当作参数传递到一个方法后,此方法改变这个对象属性,并可返回变化后结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private会怎样 GC...说出几条 Java 中方法重载最佳实践 抽象类 抽象类和接口区别 抽象类中是否可以有静态main方法 抽象类是否实现(implements)接口 抽象类是否可继承具体类(concrete class

1.2K20

通往大神之路,Java面试题前200页。

不能声明 main() 方法为非静态 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法调用 静态变量在什么时候加载?编译期还是运行期?...为什么静态方法不能访问成员变量 switch switch 语句中表达式可以是什么类型数据 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上 while 循环和...如果该值大于 byte 类型范围,将会出现什么现象 能在不进行强制转换情况下将一个 double 值赋值给 long 类型变量吗 类型向下转换是什么 数组 如何权衡是使用无序数组还是有序数组...当一个对象被当作参数传递到一个方法后,此方法改变这个对象属性,并可返回变化后结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private会怎样 GC...说出几条 Java 中方法重载最佳实践 抽象类 抽象类和接口区别 抽象类中是否可以有静态main方法 抽象类是否实现(implements)接口 抽象类是否可继承具体类(concrete class

1.6K60

Java 面试题:百度前200页都在这里了

不能声明 main() 方法为非静态 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法调用 静态变量在什么时候加载?编译期还是运行期?...为什么静态方法不能访问成员变量 switch switch 语句中表达式可以是什么类型数据 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上 while 循环和...如果该值大于 byte 类型范围,将会出现什么现象 能在不进行强制转换情况下将一个 double 值赋值给 long 类型变量吗 类型向下转换是什么 数组 如何权衡是使用无序数组还是有序数组...当一个对象被当作参数传递到一个方法后,此方法改变这个对象属性,并可返回变化后结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private会怎样 GC...说出几条 Java 中方法重载最佳实践 抽象类 抽象类和接口区别 抽象类中是否可以有静态main方法 抽象类是否实现(implements)接口 抽象类是否可继承具体类(concrete class

1.5K60

Java面试题:百度前200页都在这里了

不能声明 main() 方法为非静态 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法调用 静态变量在什么时候加载?编译期还是运行期?...为什么静态方法不能访问成员变量 switch switch 语句中表达式可以是什么类型数据 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上 while 循环和...如果该值大于 byte 类型范围,将会出现什么现象 能在不进行强制转换情况下将一个 double 值赋值给 long 类型变量吗 类型向下转换是什么 数组 如何权衡是使用无序数组还是有序数组...当一个对象被当作参数传递到一个方法后,此方法改变这个对象属性,并可返回变化后结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private会怎样 GC...说出几条 Java 中方法重载最佳实践 抽象类 抽象类和接口区别 抽象类中是否可以有静态main方法 抽象类是否实现(implements)接口 抽象类是否可继承具体类(concrete class

97520

mysql超经典8小时问题-wait_timeout

不能在这张Test表上进行任何操作,它将只供c3p0测试使用。...--因性能消耗大请只在需要时候使用它。如果设为true那么在每个connection提交   时候都将校验其有效性。...但是现实环境中需要你考虑是: 你设置多久检查一次连接有效时间 依据是什么? 默认加大/减小wait_timeout除了解决当前问题,会不会带来其他影响?...个人当前觉得此题 第一需考虑是: 你业务当前高峰期mysql_connection是多少?保留多久connection在高峰期都不会撑你数据库连接池? 如果你知道这个池-那么是改mysql ?...还是双管齐下都是有据可循且不会带来后遗症-最佳解决方案 如我当前有环境,一个现网后台管理系统,使用人数在50以内那么我wait_timeout 就是默认8小时,c3p0不用做连接有效性检查等,都是万事

66240

什么是DOE?怎么做DOE分析?

制程参数应如何设定才能获得最理想过程输出Y最佳值?长期品质问题得不能解决,同类质量问题反复发生,原因到底是什么?有什么可行方法能够解决企业质量问题“顽疾”?答案是肯定,那就是DOE。...方法:2^k析因设计------------------------------3)优化目的:寻找“最佳区域”,确定使响应Y值最佳时X设置条件(因子水平最佳组合)方法:响应曲面设计RSM10、DOE...这需要复杂统计计算与检测,但Minitab给我们一个简便方法——P值判定。通过P value,我们还可以判断:该项是否属关键因子(P<0.05=是)?该模型是否属呈现弯曲(P<0.05=是)?...如果上述条件任一条不满足,则不再是正交表。正交表获得有专门算法,对应用者来说,不必深究。...十、案例1、爆米花制作过程举个生活中例子,相信大家都吃过爆米花,但是大家是否都了解爆米花制作过程?在品尝爆米花时候,不知道您是否注意到有很多爆米花没有开,也有很多被焦。

5.5K31

JAVA 1-6章测试题

答:不是,在多重循环中,可以使用多个return,满足条件提前结束循环。 15、swtich语句支持表达式可以为变量吗?case中可以为变量吗?...3>插入法:将序列分为两堆,用后面一堆第一个数字和前边所有数据做比较,如果小于则交换位置。 18、数组特性是什么?...此方法改变这个对象属性,并可返回变化后结果,那么这里到底是值传递还是引用传递?...例如,如果对它引用被传递到其他某些代码,并存储在一个成员变量内。正因为不能保证局部变量存活期和方法内部类对象一样长,所以内部类对象不能使用它们。 45、final修饰方法不能被继承?...答:1>如果“”两边是基本数据类型,表示判断基本数据类型数值是否相同; 2>如果“”两边是引用数据类型,比较引用类型是否引用同一个对内存地址; 3>“equals”,如果使用是object类中

82830

易犯错误 | 十个 PHP 开发者最容易犯错误

如果使用 mysqlnd 模块的话,你至少可以避免上面那种欺骗(尽管它自身并不会提升你内存利用率)。mysqlnd 被编译成原生 PHP 扩展,并且确实 会 使用 PHP 内存管理器。...下面是一些可以避免出现这种问题清单: 如果你对 UTF-8 还不了解,那么你至少应该了解下基础东西。这儿 有个很好引子。...if() 条件内部去检验空数组。...不幸是,如果使用魔术方法 __get() 来获取属性值,那么就没有万无一失方法检查该属性值是否为空。...在类作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应键,因为它实际上还可能被设置为 null 。

4.4K20

十个 PHP 开发者最容易犯错误

如果使用 mysqlnd 模块的话,你至少可以避免上面那种欺骗(尽管它自身并不会提升你内存利用率)。 mysqlnd 被编译成原生 PHP 扩展,并且确实 会 使用 PHP 内存管理器。...下面是一些可以避免出现这种问题清单: 如果你对 UTF-8 还不了解,那么你至少应该了解下基础东西。 这儿 有个很好引子。...if() 条件内部去检验空数组。...不幸是,如果使用魔术方法 __get() 来获取属性值,那么就没有万无一失方法检查该属性值是否为空。...在类作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应键,因为它实际上还可能被设置为 null 。

3K90

路径规划算法之A*算法

如图2所示,我们将要搜寻的区域划分成了正方形格子。 这是搜索路径第一步:简化搜索区域。 将搜索区域简化为2维数组数组每一项代表一个格子,它状态就是走和不可走。...; 2、不能朝障碍物所在格子移动; 3、如果右边和上边两个格子都是障碍物,那么不能朝右上方格子移动。...3、如果邻居节点已经在open list中,也就是说,这个邻居已有父节点,计算从起点经由当前所选节点到达该邻居G值,检查G值是否更小。如果没有,那么不做任何操作。...对已在openlist中邻居方格进行检查,即检查从起点经过当前方格到达那里是否具有更小G值。没有,那么不做任何操作。...,并且将当前方格设置为它父亲节点,记录这个方格G、H和F值; 如果它已经在openlist中,检查经由当前方格到达它是否是更优路径,用G值作参考,更小G值表示这是更优路径。

37810

十个 PHP 开发者最容易犯错误

如果使用 mysqlnd 模块的话,你至少可以避免上面那种欺骗(尽管它自身并不会提升你内存利用率)。 mysqlnd 被编译成原生 PHP 扩展,并且确实 会 使用 PHP 内存管理器。...下面是一些可以避免出现这种问题清单: 如果你对 UTF-8 还不了解,那么你至少应该了解下基础东西。 这儿 有个很好引子。...if() 条件内部去检验空数组。...不幸是,如果使用魔术方法 __get() 来获取属性值,那么就没有万无一失方法检查该属性值是否为空。...在类作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应键,因为它实际上还可能被设置为 null 。

2.6K50

yii2使用Migrations为整个数据库表创建迁移

使用Migrations命令创建迁移时候,命令会询问我们是否需要创建,填写y 或 n,那么我们既然要批量创建,肯定是不能允许这种阻止程序事情发生,在502行,有个if判断$this->confirm...>getDb()->getSchema()->getTableSchema(表名)方法不能获取到我索引字段,那么我们就不要局限于Schema,我们改用mysql语句来查询:Yii::$app->db...然后我们开始输出主键字段(并不是自增哦~自增的如果存在就已经在上面输出了,这里代码只处理主键字段)我们先判断数组是否存在且数组个数大于0,这里不能使用foreach来循环主键数组,因为$this->...addPrimaryKey('name', 'tableName', 'columns')方法只能存在一个,所以我们使用PHP implode()方法进行拆分数组。...主键解决了,还差一个新增索引,新增索引方法为 $this->createIndex('name', 'tableName', 'Column_name'),这个方法允许存在多个,那么我们就先判断数组是否存在且个数是否大于

1.8K31

Emlog gid自动补全断号id方法

Emlog文章连接使用gid自增号作为文章ID,但是由于后台有删除文章功能,一旦删除文章那么gid自增就会出现断号。    ...其实断号问题解决很方便,只要在添加文章时候判断gid之前有没有断号问题,有的话直接插入,没有的话自增。    ...我这里解决方法是这样,我把gid自增段顺序读取作为值写入数组,自增段是从1开始,但是数组键值是0开始那么先把数组(gidarr[0]='0')赋值掉,然后把gidarr[]=gid,然后只要发现...(',', $kItem); $values = "'" . implode("','", $dItem) . "'"; $this->db->query("INSERT...blog ($field) VALUES ($values)"); $logid = $this->db->insert_id(); return $logid; }     通过改变是否需要插入语句添加

83010
领券