PHP empty()和is_array()实现源码分析

事情起因于这样一段代码: if(is_array($input) && !empty($input)){ // 做点事 } leader认为应该先empty()判断,再is_array()判断,这种写法也更为多见。 而我还是觉得其实差不多。群里讨论之后,也没有确定性的结论,究竟哪一种更好。 于是乎,我去看了两者的源码实现。 1 is_array()的实现 is_array()是php内置函数,通过扩…

PHP数组遍历的顺序

经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: <?php $arr['laruence'] = 'huixinchen'; $arr['yahoo'] = 2007; $arr['baidu'] = 2008; foreach ($arr as $key => $val) { //结果是什么? } 又比如: <?php $arr[2] = 'huixinchen'; $arr[1] = 2007; $arr[0] = 2008; foreach…

PHP内存管理之unset和哈希表

首先让我们看一个问题: 如下代码的输出, var_dump(memory_get_usage()); $a = "laruence"; var_dump(memory_get_usage()); unset($a); var_dump(memory_get_usage()); 输出(在我的个人电脑上, 可能会因为系统,PHP版本,载入的扩展不同而不同): int(90440) int(90640) int(90472) 注意到 90472-90440=32, 于是就有了各种的结论, 有的人说P…

scrapy+splash问题504 Gateway Time-out解决办法

本地用scrapy + splash调试的时候好好的,到了服务器上就奇慢无比,爆出来的错误是: 504 Gateway Time-out 这明显是在服务器上,splash渲染页面的时候超时了。 而且在服务器上用curl,或者用浏览器访问,都是非常快的,就是走splash慢了。 导致这个问题的主要原因是:splash在下载某些资源的时候,花的时间太长了,这些资源可能是某个…

Docker Linux如何检测目录(或文件)变化来执行给定命令

在此以PHP容器为例,当网站上传文件时,同步文件到云存储。 同步的方法很多,直接写在PHP网站代码中,或者用本章所讲的内容,利用Linux来侦测目录及目录下文件的变化,来异步实现文件同步。 首先,在Dockerfile或者容器中安装inotify: apt-get install inotify-tools 然后,编写Bash脚本,并运行: ##################################…

Nginx root和alias的区别

root和alias的主要区别是: 使用root,实际的路径就是:root值 + location值。 使用alias,实际的路径就是:alias值。 例如, 有一张图片,URL是:www.awaimai.com/static/a.jpg 它在服务器的路径是:/var/www/app/static/a.jpg 那么用root的配置是: location /static/ { root /var/www/app/; } 用alias的配置就是: location /static/…

WordPress开发之插件启用错误抓取

开发WordPress插件时,如果启用时出现错误,用try...catch时抓不到错误的。 WordPress有内置的错误处理方法,使用如下: function custom_save_error($plugin_name) { $out = '===================BEGIN===================='.PHP_EOL; $out .= 'Time : '.date("Y/m/d H:i:s").PHP_EOL; $out .= 'Plugin :'.$plugin_name.PHP_EOL; $out …

高效程序员Windows系统安装什么程序?

Sumatra PDF - 免费小巧的pdf阅读工具 Beyond Compare - 非常好用的文本/代码比较工具 Navicat Premium - 数据库管理工具 JetBrains 全家桶 PHPStorm - PHP IDE编辑器 IntelliJ IDEA - Java IDE 编辑器 Pycharm - Python IDE编辑器 Webstorm - 前端开发编辑器 babun - Windows版本的zsh命令行工具 Sublime Text - 简洁优雅的轻量级代码…