PHP的学习

PHP的学习学习使用了阵子PHP,PHP开发速度应该是不错的,相同的项目PHP的代码量估计要比用JSP要少很多。但是在使用过程中也发现一些问题,也看了一些别人PHP项目代码,说下一下感受.1.
PHP灵活但不能涂鸦一般使用.如果把数据库操作都写在一个页面上,维护就吃力了.至少要把数据库操作跟页面渲染分离开,类似JSP加JavaBean的方式,相信这也是PHPer采用的简单MVC.2.PHP常量PHP
array的array的读写都很灵活,可能页面会经常有这样的echo
$myArray[”myKey”];数据库操作mysql_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