Posts tagged with php


前一篇文章我们研究了include调用返回值的问题,并指出可以通过这种方式来完成序列化相同的功能,现在我就来研究一下这种方法的可行性和效率,因为直接的返回php值肯定是比unserialize()函数要快。 第一步我们来研究下怎么将php对象持久化的保存起来。下面是我定义的一些变量: private $_var; public $pub = array('pub value', 3, 4); public function __constructor($var) { $this->_var = $var; } `public function show() { echo $this->_var; } } $string = "It's a string..."; $array…

注意:可能存在偏差,我还没有做实验确认性能的差异,待更新 以前乱翻symfony生成的缓存文件的时候看到很多类似: "value"); ?> 这种表达式,当时并没有怎么在意,今天研究symfony代码的时候看到这样一句代码 classes = include($file); ?>; 一直都是通过include require来包含文件,但是从来没有使用过他的返回值,印象中include返回的无非是true或者false吧。今天自己看了下文档,发现在php文件中是可以直接调用return的。比如: ` // return.php // get_return.php echo $value; // 输出 Array, 因为$value 是从return.php返回的一个数组 ?> ` 其实项目中很少情况需要这样的返回方法…

在项目中经常要调试程序,但是电脑上的ZendStudio总是没配置好,不能单步调试,不过有时候不一定需要让ZendStudio来帮我们调试,所以写了下面这个辅助函数来方便调试,因为有时候调试的位置加多了自己也不知道到底是加在什么地方了,下面的函数就是方便的dump对象信息,同时显示调试的问题和所在的行数。 <?php //调试函数,方便显示调试函数的位置和文件 function p(){ $args = func_get_args(); // 调用栈,debug_backtrace()可以返回调用栈。这样 我们就可以方便的知道函数在哪里调用的。 $backtrace = debug_backtrace(); $file = $backtrace[0]['file']; $line = $backtrace[0]['line'…