标签 代码段 下的文章

通过static关键字限制一个类最多只能创建出一个实例化对象

<?php
    class Single {
        private static $element = NULL;

        private function __construct() {
            echo "Hello World! ";
        }

        static function get() {
            if(is_null(self::$element)) {
                self::$element = new self();
                echo 'I will never give up. ';
                return self::$element;
            }
        }
    }

    $single = Single::get();
    $double = Single::get();

核心在于static是属于类而不是属于对象的,所以改变值会反应到类。设定初值为NULL,在方法里赋值,而如果是NULL,在方法里调用,赋为new self()在外界就变成了$single = new Single(),而$double调用时什么都不会发生了,此时静态变量已经不是NULL了不会进入判断体

PHP 计算两个文件的相对路径

没错这是我目前的得意之作之一,还特地写了CSS,虽然不怎么好……
所谓使尽浑身解数……

打了草稿,嗯虽然估计过会儿我自己都要看不懂了。(思路,{}的部分在写下来之后发现了共同点就合并了)

删除 . 和空白数组
比较相同元素,到不同时中断 统计b还有多少元素 不同元素的多少决定了..个数 按序输出不同元素
count数组中元素的大小,取小的那一个作为比较次数 比较一个元素删除一个元素
{如果比完完全符合 则如果b小 返回a剩余元素 b大 返回差集数组计算元素数返回../数
如果不完全符合,则b剩余元素替换为..后加上a剩余元素}
b剩余元素变为../后输出a剩余元素
如果输入文件名a/..

演示

为了找相对路径规律还写了不同的……

- 阅读剩余部分 -

PHP 编写函数实现千位分组

这个,其实PHP还是有自带函数的,number_format()
扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp

不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。

缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)

演示

- 阅读剩余部分 -

PHP 一个函数实现字符串反转

这其实还是一道题目OTZ当然不用在意这些细节,写出来之后它已经不算是题目了吧。

但我写的函数有个缺点,那就是它是以length分割的(因为还不会正则表达式),在PHP 语法糖一枚中提到过:

length = 1代表 截取一个字节,所以对于中文不适用。

2014年02月02日更新:PHP 实现中文字符串截取无乱码修复中文支持

中文截取就会出现乱码问题。

补刀:如果不是题目的话可以使用官方自带函数strrev()
扩展阅读:http://www.w3school.com.cn/php/func_string_strrev.asp

先来看一下函数部分吧。

- 阅读剩余部分 -

PHP Call-time pass-by-reference has been removed 错误解决

依旧是做到题目的时候发现了这个问题,可能是PHP版本不同引发的问题,然后默默的搜索了一下。

按引用传参,其实只用在定义时指定"&"即可,调用时不用写,只不过一直以来都这么写也没报过错,看来是5.4版增强了检查,不允许这种调用了。
调用时去掉"&",只保留方法定义中的"&",这次一切OK了。

- 阅读剩余部分 -