PHP陷阱,一些注意事项
判断的一些注意事项
count(false)  > 0 // true
count(0) > 0 // true
"随便一个字符串" == 0 // true
"不是0的一个字符串" == true // true
$a = "2级";
$b = "14级";
$b > $a // false 不要做这样的比较
isset("") === true // 
0 === false // false 
iconv("UTF-8", "GB2312", $text)  // 容易遇到特殊的字符,会截断
// 建议使用
iconv("UTF-8", "GB2312//TRANSLIT", $text)
exec($a, $b);  // $b 是负责记录输出,会不断累加
strlen("宝宝树") == 9
mb_strlen("宝宝树") == 3 //强烈建议使用 
mb_strimwidth("宝宝树babytree", 0, 7, "", "UTF-8") == "宝宝树b"  // 推荐在web端截字
function abcTest () {}
function abctest () {}
//上面两个函数是一个,php会忽略大小写
//静态变量的问题
class A {
    static $x = 1;
    public static function fun() {
        echo self::$x;
    }
}
class B extends A {
    static $x = 2;
}
B::fun();   //输出是1,而不是2
// 判断是否是数字,用is_numeric,不要用is_int,因为在浏览器传过来的,是一个字符串,不是整型
is_numeric("1234")  // true
is_int("1234")   // false
$a = $a . $b; //不建议使用,效率低,和下面的效率相比,是一个数量级的差别
$a .= $b;
// memcache,tt的key不能有中文,空格 允许的字符集有 "a-Z", "0-9", "_", "-"
//feof死循环
// if file can not be read or doesn't exist fopen function returns FALSE
$file = @fopen("no_such_file", "r");
// FALSE from fopen will issue warning and result in infinite loop here
while (!feof($file)) {
}
												
											PHP陷阱,一些注意事项的更多相关文章
- python书写日志的重要性?
		
转自:https://blog.csdn.net/weixin_43063753/article/details/82899395 程序为什么要写日志?#为了能够在程序在运行过程中记录错误,方便维护, ...
 - C++ switch注意事项(陷阱)
		
话不多说,直接上代码 int a; printf("请输入一个整数:"); scanf("%d", &a); switch (a) { : printf ...
 - 关于Unicode和URL encoding入门的一切以及注意事项
		
本文同时也发表在我另一篇独立博客 <关于Unicode和URL encoding入门的一切以及注意事项>(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了! ...
 - Apache,PHP,MySQL,PMA手动配置的注意事项
		
注:本文之前发布在自己的QQ空间,复制过来的时候,颜色信息丢失了,回头有空再把颜色重新标上! 前言:LAMP(Linux+Apache+MySQL+PHP)环境是目前开源社区最活跃的开发和运行平台,有 ...
 - Java异常处理最佳实践及陷阱防范
		
前言 不管在我们的工作还是生活中,总会出现各种“错误”,各种突发的“异常”.无论我们做了多少准备,多少测试,这些异常总会在某个时间点出现,如果处理不当或是不及时,往往还会导致其他新的问题出现.所以我们 ...
 - python常见陷阱
		
copy to https://pythonguidecn.readthedocs.io/zh/latest/writing/gotchas.html 大多数情况下,Python的目标是成为一门简洁和 ...
 - Go slice:切片的“陷阱”和本质
		
文章说明 总结了go语言中切片slice的特殊性和使用时的注意事项. 个人理解,不足之处欢迎指出. slice:切片,是go语言中一种常用的数据结构,基于数组构建,表示相同数据类型的集合. 数组 Go ...
 - 必须要注意的 C++ 动态内存资源管理(五)——智能指针陷阱
		
必须要注意的 C++ 动态内存资源管理(五)——智能指针陷阱 十三.小心使用智能指针. 在前面几节已经很详细了介绍了智能指针适用方式.看起来,似乎智能指针很强大,能够很方便很安全的管理 ...
 - 【C/C++开发】malloc,calloc和realloc的区别和注意事项
		
(1)C语言跟内存分配方式 <1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量.static变量. <2&g ...
 
随机推荐
- C语言运算符优先级
			
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- ...
 - php 时间倒计时代码 个人写法 有好的想法的欢迎贴出来分享
			
$now=time(); $secondtime=$end_time-$now;//期限时间减去现在时间 剩余时间 $second=$secondtime % 60;//取余得到秒数 $nowtime ...
 - Mac下QT错误,Xcode配置解决办法
			
出现错误: Xcode not set up properly. You may need to confirm the license agreement by running / 解决办法如下: ...
 - 前端开发必学技能之一———非关系数据库又像关系数据库的MongoDB快速入门第一步下载与安装
			
数据库总的来说,分为两个方向:关系数据库和非关系数据库.我们常见的MySQL.Oracle.SQLSerever以及IBMDB2都是属于关系数据库,这里的关系值得是二维表的结构,但是由于随着web的应 ...
 - bootstrap-datetimepicker在火狐下报错的问题
			
问题:使用bootstrap-datetimepicker这个日期插件来显示日期,但在火狐下报如下错误:TypeError: (intermediate value).toString(...).sp ...
 - Python Socket 编程——聊天室示例程序
			
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
 - Spring事物管理
			
spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只 ...
 - [No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图
			
行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会 ...
 - [LeetCode] Increasing Triplet Subsequence 递增的三元子序列
			
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...
 - python入门
			
输出用print 注释用# rang() >>> range(1,5) #代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) #代 ...