标签 php 下的文章

2015
09-03

PHP魔术方法之__set()和__get()

先来看一段代码:

class Article{
    //私有成员属性
    private $title = '标题';

    //受保护的成员属性
    protected $author = '作者';

    //公有成员属性
    public $introduce = '简介';
}

$article = new Article();
var_dump($article -> title);
var_dump($article -> author);
var_dump($article -> introduce);

对象直接访问类中的private和protected成员属性时,会报一个Fatal error的错误,提示“Cannot access private property”或者“Cannot access protected property”。


1、魔术方法__get()

如果对象要直接访问类中的private和protected成员属性呢?
PHP给我们提供了一个魔术方法“__get()”,用于获取private和protected成员属性。

class Article{

    //私有成员属性
    private $title = '标题';

    //受保护的成员属性
    protected $author = '作者';

    //公有成员属性
    public $introduce = '简介';

    //获取private和protected成员属性
    public function __get($name){·
        if(isset($this -> $name)) {
            return $this->$name;
        }
        return false;
    }

}

$article = new Article();
var_dump($article -> title);
var_dump($article -> author);
var_dump($article -> introduce);
查看全文 >
2015
01-23

zendstudio识别Phalcon语法及提示 HOT

Phalcon是一个开源的、全堆栈的PHP5框架,使用C扩展编写,专门为高性能优化。无需学习和使用C语言,所有函数都以PHP类的方式呈现。
在Zend studio编辑器中进行Phalcon框架代码开发时,IDE无法对Phalcon框架内的对象、函数与方法进行语法提示。下面就来介绍下,如何让zend studio这个IDE支持Phalcon的语法提示。

1、下载代码提示包,然后解压

https://github.com/rogerthomas84/PhalconPHPDoc

2、打开“/your/workspace/.metadata/.plugins/org.eclipse.php.core/language/”目录,会看到当前目录下,有一些类似“555a446a”或者“7697c88c”的目录,这些目录名称是随机生成的,每个目录当中都要将刚才解压后的Phalcon整个目录文件复制进去,否则不会生效

查看全文 >
2015
01-21

base62编码 HOT

Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域。本文将介绍对数字进行Base62编码与解码的方法。

直接上代码,如下:

        /**
         * base62编码与解码key,由10个数字、26个大写英文字母和26个小写英文字母组成
         * @var string
         */
        private $key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';

        /**
         * base62编码
         * @param string $str
         * @return string
         */
        public function base62_encode($str) {
            $out = '';
            for($t=floor(log10($str)/log10(62)); $t>=0; $t--) {
                $a = floor($str / pow(62, $t));
                $out = $out.substr($this->key, $a, 1);
                $str = $str - ($a * pow(62, $t));
            }
            return $out;
        }

        /**
         * base62解码
         * @param string $str
         * @return string
         */
        public function base62_decode($str) {
            $out = 0;
            $len = strlen($str) - 1;
            for($t=0; $t<=$len; $t++) {
                $out = $out + strpos($this->key, substr($str, $t, 1)) * pow(62, $len - $t);
            }
            return substr(sprintf("%f", $out), 0, -7);
        }

        /**
         * 测试程序
         */
        public function indexAction(){
            header('content-Type:text/html;charset=utf-8');
            $equal = $notequal = 0;
            for($i=0; $i<10000000; $i++){
                $encode = $this -> base62_encode($i);
                $decode = $this -> base62_decode($encode);
                if($decode == $i){
                    $equal++;
                }else{
                    $notequal++;
                    echo "{$i}---{$encode}---{$decode}<br />";
                }
            }
            echo "相等{$equal},不相等{$notequal}<br />";

        }
查看全文 >
2015
01-12

centos下安装phpredis扩展 HOT

上一节介绍了《centos下安装redis》,系统安装了redis之后,但是php程序里不能直接和redis相连。需要通过相应的扩展驱动才能操作redis。下面,就来介绍下centos环境中安装phpredis扩展驱动的方法。

1、执行如下命令下载扩展包:

wget https://github.com/phpredis/phpredis/archive/2.2.6.tar.gz

2、执行phpize,准备动态安装扩展:

/usr/local/php/bin/phpize

结果如下图所示,表示准备就绪:
3.png

查看全文 >
2014
12-12

PHP性能分析之Xhprof数据说明 HOT

之前介绍了《PHP性能分析之Xhprof安装》和《PHP性能分析之Xhprof的使用》,链接如下:

下面来介绍下Xhprof输出的性能数据说明。

Xhprof性能数据界面如下:

7.png

Incl.       表示Including(包含)的缩写
Excl.       表示Excluding(不包含)的缩写
Function Name:      函数名
Calls:              调用次数
Calls%:             调用次数的百分比(图中带有百分比符号的字段皆表示百分比的意思,所以后面不在介绍)
Incl. Wall Time:    包含子函数执行的所有花费时间。单位:微秒(下同)
Excl. Wall Time:    函数本身执行所花费的时间。
Incl. CPU:          包含子函数执行的所花费的CPU时间。
Excl. CPU:          函数本身执行所花费的CPU时间。
Incl.MemUse:        包含子函数执行的所占用的内存。单位:字节(下同)
Excl.MemUse:        函数本身执行所占用的内存。
Incl.PeakMemUse:    包含子函数执行,所占用内存的峰值。
Excl.PeakMemUse:    函数本身执行所占用内存的峰值。
查看全文 >
2014
12-03

PHP性能分析之Xhprof的使用 HOT

上一节介绍了《PHP性能分析之Xhprof的安装》(点击查看详情)。
这一节来介绍下Xhprof的具体使用。

Xhprof的使用方式,直接贴示例代码,如下:

//在代码的开头处添加启动“xhprof性能分析器”函数
xhprof_enable(); 

function test(){
    for($i=0; $i<10000; $i++){
        ......
    }
}
test();

//在代码的结束处添加“停止xhprof分析器”函数
$xhprofData = xhprof_disable();

//输出xhprof分析器收集到的性能数据
var_dump($xhprofData);
查看全文 >
2014
12-01

PHP性能分析之Xhprof安装 HOT

Xhprof是facebook开源的一个分层PHP性能分析工具。可以收集函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,还可以细分成调用者和被调用者的开销。

下面介绍Xhprof的安装:

1、获取安装包
wget http://pecl.php.net/get/xhprof-0.9.4.tgz

如下图所示:
2.png


2、解压安装包
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension
查看全文 >
2014
11-26

centos安装lnmp环境 HOT

系统需求:
  • CentOS/Debian/Ubuntu Linux系统
  • 需要2GB以上硬盘剩余空间(个人建议>=20G)
  • 128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统)
  • VPS或服务器必须已经联网!
  • Linux下区分大小写,输入命令时请注意!

LNMP一键安装包 V1.1 已经在Linode、DiaHosting、PhotonVPS、DigitalOcean、VR香港VPS、遨游主机、RamNode、BudgetVM、瑞豪开源、DirectSpace、KVMLA、OneAsiahost新加坡VPS、景文互联、VPSYOU、Hostigation、BuyVM、123systems、bluevm、80VPS、XSVPS等众多VPS的CentOS 5-6.5、Debian 5-7、Ubuntu 10.04-14.04的32位和64位系统上测试通过。


安装步骤:

1、使用putty或类似的SSH工具登陆VPS或服务器;

登陆后运行:

screen -S lnmp
查看全文 >
微信扫一扫