三更灯火五更鸡,正是男儿读书时。黑发不知勤学早,白首方悔读书迟。 --颜真卿
前言
到目前为止我的编程生涯中我会用的只有两种编程语言一个C,一个便是PHP了,在学习C的时候我对指针,地址的理解可谓是云里雾里_。PHP相对于C而言,语言本身弱化了指针的概念(估计对于这个知识点不理解的不止我一个),但是,往深了学,扣效率的时候,这些东西就莫名其妙的又全都出来了,这里的一个典型的应用便是&
求地址符。
&
在PHP中的应用很多比如foreach
中的优雅写法,比如我们在单例中,还有等等的场景中有应用。&
虽然名为求地址符,但是我还真的很少很少将这个值打印出来,因为,就算输出来,我也看不懂,只要计算机知道就可以了。这里我将说说几个常用的用法,以及这么用的道理,算是一个小小的优化的方法吧。值得一提的是,在这里我们的单例用法将不做解释,因为单例的主要做法是借助静态变量,所以后面会单独讲讲单例。
用法一:foreach
其实在前面的博客中有提过,这里就不再啰嗦,还是提醒下,这个要慎用,在对PHP的foreach的理解没有那么深刻的时候,请小心!!!
用法二:漂亮的函数参数传递
在某些时候,我们的函数处理了一个逻辑之后我们会得到多个结果,对于这种情况,我们用return返回结果的时候,只能借助数组了,这样的话就将变量变成了数组的一个元素,后期的排错难度就会加大,所以就用到了&
<?php
doSome($a,$b);
function doSome(&$a,&$b){
$a=19;
$b=20
}
echo $a;//19
echo $b;//20
?>
用法三:唯一的对象
在我目前的游戏项目中,我们会把玩家的一个角色实例化成一个对象,还记得当时我们在初次接触面向对象的时候,老师曾经说过,我们可以定义一个“人”的类,然后不断的实例化出一个个人,但是实例化一个个人是没错,那么我们每一次实例化出一个人必然是个全新的人,但是我们并不希望这样,我们希望一个进程中我们的人就是一个人,不管怎么操作,都是针对这个人的操作,所以在全局的使用中我们并不会单纯的操作“人”这个对象,而是操作的“人”这个对象的这个地址上的这个对象,有点绕,但是确实这样可以确保,我们操作的就是一个人!
最后说两句,其实用法三有点单例的意思,但是在实际应用中我却没有严格的针对概念去死用,下次再说到单例的时候,我会说点我用的“伪单例” ^_^!
本文由 陌上花开 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 2, 2016 at 06:37 pm