Submitted by gouki on 2008, July 22, 9:50 PM
众所周知,PHP的字符串输出有两种方法,echo , print ,数组除外
对于这两个,讨论的也是很多,什么速度啦,效率啦等等不一而足。
很明显,不管是从手册上也好,网络也好,大家都知道。echo的速度比print快。毕竟echo是语言结构,而print是函数。
顺便再说个小技巧,大量字符串需要合并输出时,可以考虑不用“.”的连接符,因为当你使用echo 的时候,你可以把这些字符串用逗号隔开,效率那是刷刷D,你想。。。可以不要用连接符了,可以节省多少内存啊。再说了echo是语言结构。用语言结构还不够你牛叉的呀。。。
黑黑
Tags: php, 输出, 字符串
PHP | 评论:0
| 阅读:20984
Submitted by gouki on 2008, July 21, 9:22 PM
为什么。。。为什么。。。
我都写了两千多字了。为什么我按了一下alt 左箭头,跳到了前一页,再回来数据就全没有了。我的天啊。。。
我的心血啊。。。
又要失去信心和兴趣了。MMD
Tags: php, cache
PHP | 评论:7
| 阅读:26917
Submitted by gouki on 2008, July 17, 2:19 PM
最近很多人问我如何发邮件,为什么mail函数无法发出去。我当时感慨了一下下。。。
mail函数是linux下面默认的发邮件函数,而且需要安装mail服务,同时要在PHP.ini里面配置好才能发送。 也有人嫌phpmailer太大,正好手头有一个discuz发邮件的类改的函数。贴上来。。。抛抛砖引引玉,不要砸人就行。
毛主席说:要温柔。。。
» 阅读全文
Tags: discuz, sendmail, php
PHP | 评论:7
| 阅读:38889
Submitted by gouki on 2008, July 12, 10:48 PM
在PHP的数组操作中,可能在处理数字方法会比较多一点,加法一向是被使用的,所以。。array_sum的使用就相对比较多了。(array_sum也只是仅仅支持一维数组,不过,无论是否有下标都可以直接处理),那么乘法、除法、减法怎么办呢?array_walker?杀鸡不用牛刀的。直接使用array_reduce就行了。
翻开手册,可以明显的看到array_reduce就是将回调函数迭代的作用在数组的每一个单元里,从而将数组简化成单一值。如果指定了第三个参数,那么,
1、如果要处理的数组为空,则返回第三个参数的值(第三个参数是INT型)
2、如果要处理的数组不为空,那么第三个参数则默认为数组的第一个值,相当用使用了array_unshift为原始数组头部插入一个值。
简单的例子如下:
PHP代码
- <?php
-
- function r_sum ( $a , $b){
- $a += $b;
- return $a;
- }
-
- function r_mul ( $a , $b ){
- $a *= $b;
- return $a;
- }
-
- $a = array(1,2,3,4,5);
- $b = array();
-
- $c = array_reduce( $a , 'r_sum');
- $d = array_reduce( $a , 'r_mul' , 10 ) ;
- $e = array_reduce( $b , 'r_sum' , 1 );
-
-
- ?>
现在,就不用再担心怎么处理加减乘除等四则运算了,不用再埋怨为什么只提供一个array_sum函数了吧。
PHP | 评论:0
| 阅读:25034
Submitted by gouki on 2008, July 12, 4:07 PM
说在惭愧,以前在去掉数组的空值是都是强写foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下:
PHP代码
- <?php
- foreach( $arr as $k=>$v){
- if( !$v )
- unset( $arr[$k] );
- }
- ?>
而且自我感觉还挺不错,只是这样的效率并不高也曾经试过,先将$arr转为对象,然后利用对象的特性来删除,因为:foreach是将当前操作的数组进行copy,每操作一下foreach,都是copy了一个变量,页面里面如果有太多的foreach,会是一个很大的消耗。
在网上闲逛的时候,看到人有提示用array_filter,觉得很吃惊。打开手册瞅了一下,发现自己一直就守着个宝山却不知道如何使用。
array_filter函数的功能是利用回调函数来对数组进行过滤,一直都以为用回调函数才能处理,却没有发现手册下面还有一句,如果没有回调函数,那么默认就是删除数组中值为false的项目。
例程:
PHP代码
- <?php
-
- $entry = array(
- 0 => 'foo',
- 1 => false,
- 2 => -1,
- 3 => null,
- 4 => ''
- );
-
- print_r(array_filter($entry));
- ?>
输出值为:
XML/HTML代码
- Array
- (
- [0] => foo
- [2] => -1
- )
看来,以后还是要多看手册啊……
就象array_slice一样也是个好东西。可惜以前从来没有注意过。
建议:PHP里面最重要的两章应该就是数组操作和字符串操作,这两章里面的函数都必须要熟练,其他的就等用的时候再查吧
PHP | 评论:2
| 阅读:50347