白领掉头发的元凶竟然是它!震惊院内
取了一个很俗的标题。
上世纪七八十年代,农民是国家的主力,农业大国,羊毛当然是农民的汗水。新世纪开始,白领大军正式成为了国家主力,羊毛自然是白领阶级的汗水。
文化的形成是个很复杂很必然的过程,压抑、帝国式无监管办公室文化在如今没有血性的年轻人身上是必然的。在一线城市拼搏(本不该用这个词,因为并不是在拼搏)的年轻人极大多数都是白领,他们大多数坐在办公室,看着屏幕,日复一日年复一年。
于是很多傻逼就认为,是电脑的辐射导致头发脱落,其实这种观点是不太正确的,有这个因素,它微乎其微。当今社会哪个人离得开手机屏幕?
真正的元凶是睡眠,白领的压力导致睡眠普遍不太好,熬夜和透支劳动导致体力消耗,于是脱发就产生了。一连几天的熬夜,洗个头就是一撮头发下来了。而如果一个白领浑浑噩噩混日子,头发脱落会少很多。
在 PHP 中打印 trace 信息技术
看 PHP 官方提供了几个函数,但是都不怎么好用。比如 debug_print_backtrace 是直接打印,并不返回值,这样需要借助缓冲区才能实现,比较麻烦;debug_backtrace 返回的是数组,需要 implode 才可以使用,并且冗余信息太多。
高手在民间啊,也许很多人都意识到了这个不好用的问题,于是有了下面的解决方案:
$e = new Exception(); echo str_replace('/path', '', $e->getTraceAsString());
是不是超级爽,欠操的应该是 PHP 啊。
Java 中如何避免空指针异常技术
在 Java 程序中,排名前几位的异常一定包含空指针异常,空指针异常是程序员之痛,甚至让人怀疑 Java 语言的设计问题。其实,空指针异常是可以根治的,写下这篇文章希望能给大家带来帮助。据网友总结,Java 空指针异常 NullPointerException 主要原因如下:
- 引用空对象,即调用空对象的方法或引用空对象的属性
- 将 java8 中基础类型的封装类赋值给对应的基础类
如何避免空指针异常:?
多留心,多判断
多使用 CollectionUtils,MapUtils,StringUtils.isNotEmpty() 等进行判断。
多余的性能担忧
很多网友担心性能问题,其实多几个简单判断对于计算机来讲可以忽略不计。
PHP7 返回值类型与声明不符报错技术
PHP7 的函数和方法支持声明返回值类型,出于好奇,试了下如果在运行时返回值类型与声明不符会怎么样?
<?php function test() : array{ return 'lmlphp'; } test();
如下致命错误:
PHP Fatal error: Uncaught TypeError: Return value of test() must be of the type array, string returned in /home/may/work/code/repo/lmlphp.com/temp1.php:4 Stack trace: #0 /home/may/work/code/repo/lmlphp.com/temp1.php(7): test() #1 {main} thrown in /home/may/work/code/repo/lmlphp.com/temp1.php on line 4
在PHP中导入命名空间的函数技术
PHP 5.6 之后支持命名空间导入函数了,算是一个新玩意儿,并且还支持命名空间常量的导入,这个都是命名空间刚出来那会儿不支持的。
// importing a function (PHP 5.6+) use function My\Full\functionName;
重命名
// aliasing a function (PHP 5.6+) use function My\Full\functionName as func;
使用常量
// importing a constant (PHP 5.6+) use const My\Full\CONSTANT;