Zihao

Make small but daily progress

0%

背景

惯例介绍下容器的背景,回答第一个问题:什么是容器?

顾名思义,容器即存放东西的地方,里面存放的可以是文本、数值,甚至是对象、接口、回调函数。

那通过容器,解决了什么问题呢?

通过容器最主要解决的就是“解耦”、“依赖注入(DI)”,从而实现“控制反转(IoC)”

阅读全文 »

目录

作为phper,一般接触算法的编程不多。但基本的排序算法还是应该掌握。毕竟算法作为程序的核心,算法的好坏决定了程序的质量。本文将依次介绍一些常用的排序算法,以及PHP实现。

阅读全文 »

推荐APP工具:百度网盘(你所能找到的好多资料都需要百度网盘来中转),扇贝单词,扇贝新闻,帮学堂,粉笔考研,考研万题库,口袋题库考研,完美规划,考研帮,有道词典

阅读全文 »

字符编码是计算机技术的基石,想要熟练使用计算机,懂得一点字符编码的知识,还是很有必要的。

阅读全文 »

忙忙碌碌中的一天,听闻龙泉寺招募义工,信息技术类。我佛慈悲,正好从事此类工作,遂积极报名前往欲与师兄共承担。

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* Created by PhpStorm.
* User: zihao
* Date: 2017/5/10
* Time: 下午5:02
*/
class test{
function callprint(){
print_r("onesdf");
}
function test2( $args = "" ){
print_r( $args );
}
}

class testDelegator{
private $targets;
function __construct($obj){
$this->targets[] = $obj;
}
function __call($name,$args){
foreach($this->targets as $obj){
$r = new ReflectionClass($obj);
if($method=$r->getMethod($name)){
if($method->isPublic() && !$method->isAbstract()){
return $method->invoke($obj,$args);
}
}
}
}
}

$d = new testDelegator(new test());
$d->callprint();
$d->test2('the name of the method is test2','array2');
阅读全文 »

经常会看到此类问题。虽然使用不多,但是基于基本原理,需要进行理解,同样利于装x,不然“砖家”之间聊什么呢。

阅读全文 »

正整数的十进制转换二进制

要点:除二取余,倒序排列
解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果

例如把52换算成二进制数

52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是110100。 由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位….。 于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。
那么:
(52)10=(00110100)2

阅读全文 »

迁移是一种数据库的版本控制。可以让团队在修改数据库结构的同时,保持彼此的进度一致。它是 Laravel 5 最强大的功能之一。

一般我们可以通过phpmyadmin或者Navicat等数据库管理工具来创建、修改数据表结构。如果就自己一个人的话还好,但是如果团队中有多个人,我们就需要导出表结构,然后传给团队中其他人,他们再把数据表结构导入他们的数据库,这时如果表中原来有数据的话就可能出现一些问题。而Laravel 5中的Migrations很好的避免了此问题。

阅读全文 »