PHP 判断类中是否包含特定的 const 常量
class A {
const STATUS_SUCCESS = 1;
const STATUS_FAILED = 0;
}
要怎样才能判断类中是否包含 A::STATUS_SUCCESS 这个变量呢? 理论上来讲,我们可以使用PHP的 Reflection
机制,如:
$ref = new ReflectionClass('A');
print_r($ref->getConstants());
/* 输出:
Array
(
['STATUS_SUCCESS'] => 1
['STATUS_FAILED'] => 0
)
*/
但是, 使用 反射 的话,对性能影响可是很大的,如果只需要简单的判断是否存在某某名称的常量,可以这样操作:
class A {
const STATUS_SUCCESS = 1;
const STATUS_FAILED = 0;
public function checkStatus()
{
return defined("self::STATUS_SUCCESS");
}
}
var_dump((new A)->checkStatus());
/* 输出:
bool(true)
*/
通过这种方法,能简单的判断是否出现是否存在常量。 have fun!
PHP 对递归的优化
ThinkPHP 关于行为扩展 app_begin 标签不能使用 session 的问题
ThinkPHP 中有一个叫行为扩展的功能模块,其实就是设计模式当中的“监听者模式” (当然啦,这个还是处于十分粗糙的),对于网站的初始化等处理还是挺有用处的。 当中有一个行为标签叫 app_begin ,见名知意,就是在整个应用最开始时执行的操作。 但是有个缺憾,在 app_begin 这个标签的 Behavior 无法执行 session 的 增删改查 ,到底为何呢? 可以查看 TP 的源码: ThinkPHP/Library/Think/
App.class.php
Mac下安装 python3
还是一个老生常谈的问题,究竟使用 python3 还是 python2 好呢?假如你用的 nix 平台,当然, 2和 3 可以并存。 有鉴于本人使用的是 Mac , 所以介绍的还是如何在 Mac 下安装 python3 。
中国省市区 最新版 数据库 SQL文件 截止 201504
根据 国家统计局 来制作的最新中国省市区数据库 原始数据不包含 所属关系 ,即数据库中没有 PID 相互的关联。 以下是原始数据(没有PID): region-origin-no-pid.sql 再提供一个经由我从省份的编号计算出来的,含所属关系(PID)的数据库,算法如下:
npm 慢成狗,let's 更换 npm 淘宝源
中国网络差真系不是说笑的,用 npm 下载3个包竟然要半小时,受不了。因此我们需要为 npm 更换一个淘宝源。 理论上,加入你要安装 koa ,可以这样做:
npm –registry=https://registry.npm.taobao.org install koa
然后,秒速的就下载完,但是你会发现,每次 install 都要加 –registry=https://registry.npm.taobao.org ,这么麻烦?来一个一劳永逸的方法,直接安装淘宝的 cnpm ,运行:
npm install -g cnpm –registry=https://registry.npm.taobao.org
等到完成后,你就可以使用 cnpm 来代替 npm 命令来下载了,如上例 koa , 可以使用如下命令安装:
cnpm install koa
这样,其实命令就等价于:
npm –registry=https://registry.npm.taobao.org install koa
至此,OVER,大家可以去看看淘宝源网址:http://npm.taobao.org/
Mac 删除原生的 nodejs 或者 通过 pkg 安装的 nodejs
使用Laravel 5.1 的时候,免不了和 gulp 打交道,因此,系统当中必须要有好的 nodejs 啊,原生的 npm 和 nodejs 是在太旧了,因此想用 homebrew 来管理 nodejs ,因此,我们需要先删除原来的 node ,步骤如下:
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/systemtap/tapset/node.stp
sudo rm /usr/local/share/doc/node/gdbinit
然后,就可以通过 homebrew 来安装 nodejs 了:
brew install node
node -v
Mac 下安装 dnsmasq 来配置开发环境
由于实际的开发当中,可能存在多个项目的情况,如果是在本地自行搭建的坏境的话,就很有可能需要使用多个域名了,当然,也可以是 localhost / localhost:81 / localhost:82 这样来访问多个项目。其实,有更加便捷的方法(忽略自行修改/etc/hosts,这种哈,会改死人的),使用一个管理dns的工具: dnsmasq。 1 、安装dnsmasq 已经默认各位Mac下有homebrew , 安装:
Python3 的文件/目录操作
最近不知为何,忽然爱上了 Python , 无论做小爬虫,还是简单的文件处理都是很尝心悦目的。 不过,还是不太熟悉python的包和函数,来来来,让我 markdown 一下: 文件头,请导入: