新萄京计算机网络

 新萄京计算机网络     |      2020-01-11

PHP的学习学习使用了阵子PHP,PHP开发速度应该是不错的,相同的项目PHP的代码量估计要比用JSP要少很多。但是在使用过程中也发现一些问题,也看了一些别人PHP项目代码,说下一下感受.1. PHP灵活但不能涂鸦一般使用.如果把数据库操作都写在一个页面上,维护就吃力了.至少要把数据库操作跟页面渲染分离开,类似JSP加JavaBean的方式,相信这也是PHPer采用的简单MVC.2.PHP常量PHP array的array的读写都很灵活,可能页面会经常有这样的echo $myArray[''myKey'']新萄京娱乐手机版,;数据库操作mysql_新萄京娱乐app,fetch_新萄京娱乐网址,array返回的row也是,万一key值''myKey''开发的时候没定义好,又或''myKey''是列名,突然要改了,这个常量每个文件都有的话,改起代码来就郁闷了.PHP会使用define,类里面会使用const来代表常量define(''MY_CONSTANT'', ''MY_VALUE'');echo MY_CONSTANT;class MyClass{ const MY_CONSTANT = ''MY_VALUE''; public function test(){ echo self::MY_CONSTANT; }}//External usageecho MyClass::MY_CONSTANT;3.=号赋值拷贝=大多情况下是拷贝的形式的赋值.$oldValue = array(1,2,3);$newValue = $oldValue;$newValue[] = 4;echo $oldValue;//1,2,3echo $newValue;//1,2,3,4可以看到$newValue只是值拷贝,它的修改不会改变$oldValue.估计class实例的赋值也是拷贝。还有什么会导致拷贝,function的入参,和return返回值应该也是默认是值拷贝传递.function test($param) {echo $param;//string$param = ''newstring'';echo $param;//newstring}$strParam = ''string'';test($strParam);echo $strParam;//stringforeach迭代array的时候可能导致拷贝$myArray = array(''key1''=''value1'',''key2''=''value2'');foreach($myArray as $key=$value) { echo $key=$valueBR/;}按照PHP手册的说法就是foreach的时候是拷贝了一个新的array,即使在循环中修改了值,对旧array没影响.=号对于clone好像是不算是拷贝?个人感觉不太喜欢拷贝,如果拷贝的东西比较大,估计会影响执行效率了吧.4. 使用reference引用避免拷贝其实就是使用= 引用其实是别名Alias,觉得这个就是java,c#类默认使用的,PHP必须显式加个,有点像c++.$oldValue = array(1,2,3);$newValue = $oldValue;$newValue[] = 4;echo $oldValue;//1,2,3,4echo $newValue;//1,2,3,4PHP4里面$myClassInstance = new MyClass();其实是一种拷贝, 必须$myClassInstance = new MyClass();PHP5里面就支持好多了默认new出来的东西就是PHP4里面的new引用。入参如果数据大(假设是一个大数组)可以传递引用避免值拷贝function test($param) {echo $param;//string$param = ''newstring'';echo $param;//newstring}$strParam = ''string'';test($strParam);echo $strP