原创

PHP-总结-细节注意

1、
时间戳转成时间
时间戳格式化成时间<?php echo date("y-m-d H:i:s",date())?> 分不要写成M(这是英文月份简写)
注意另外java有%02d这样的表达,php呢?

2、
<?php //前面不能有其他空格或者字符! 尤其是非HTML环境
?>

3、
PHP中的遍历 支持if、elseif (HTML环境)
《PHP-积累-php遍历》

4、
mysqli_affected_rows(getDbConn()); 返回-1 表示失败,至少要判断 >0
类似在其他几种几种数据库操作函数中都要主要 ,直接使用if(xxx) 是不准确的,非0即真
优化:
$result = mysqli_query(getDbConn(),$sql);//这里的失败会返回false,所有要留意返回值
if($result){
return mysqli_affected_rows(getDbConn());
}else{
return false;
}

5、关于echo print()、 print_r()、 var_dump()

调试时查看数据库返回的数组不能使用echo打印,而是使用var_dump()之类的函数
区别:① echo 是php语言(无返回值),可以同时通过逗号打印多个值(其余都是php函数,有返回值)
② print() 打印int string 之类的简单数据类型, print_r()、 var_dump()打印对象的详细数据结构
var_dump()列出的是变量的详细信息,而print_r()列出的则是易于理解的一些基本信息

6.动态打印value等属性值时,要使用<?php echo ...;?>
<td><select>
<?php foreach ($rows as $row):?>
(错误!!!)<option value=$row['id']><?php echo $row['cName'];?></option>
(正确!!!)<option value=<?php echo $row['id'];?>><?php echo $row['cName'];?></option>
<?php endforeach;?>
</select>
</td>

7、判断数组有无数据(数组是否为空)
if($objArrary && is_array($objArrary )){} //或者count($objArrary ) >0,前者优先

8、关于变量作用域
$a =1;
function func(){
$a ++;
}
$a 的值不变,除非定义为global全局变量

9、接收请求过来的所有字段
$arr=$_POST; //这个数据本身就是一个数组
另外对一个数组清空
可以使用$arr = array();

10、mysql中的insert 可不加into
$sql = "insert {$table}($keys) values({$vals})";这句话为什么没有into?
mysql 应该可以不加into,据说mssql中不加into会报错

11、jion()函数
$vals = "'".join("','", array_values($array))."'";
// 首尾"'"分别添加,中间把$array分割并使用','拼接

12、定义函数方法的参数
php:function editaAdmin($id,$name){}
js:function editAdmin(id,name){}
php中要加$,js不加$
特别注意:在PHP代码中写js时,要注意这就是js环境了,拼接字符串由php的.改成js的+

13、{}使用
{}注意用于数据库等某些环境下的字符串的拼接:字符串已经被单引号或者双引号包裹,但是其中还要获取一个变量。
原则上使用.或者<?php echo ;?>应该也是可以的
//echo "$arr['name']";//用此句会报语法错误
//echo "{$arr['name']}";//此句正常,大括号内的字符将作为变量来处理
注意:{}外围使用双引号!

14、
快速调用原生js弹出确认提示框
if(window.comfirm('Are you sure to delelt it,can't recover after delelte it ')){
//TODO
//execute here if got true.
}

15、PHP中定义变量不要制定类型
PHP中确实需要定义一个变量时,不要指定变量的类型,比如不要写$files = array(),而是只写$file;

16、联表查询
$sql="select p.id,p.pName,p.pSn,p.pNum,p.mPrice,p.iPrice,
p.pDesc,p.pubTime,p.isShow,p.isHot,c.cName from
imooc_pro as p join imooc_cate c on p.cId =c.id";//on 后表示条件

17、特别注意textarea中的赋值不要使用value,而是直接
在<textarea> <?php echo xxx;?> </textarea>

18、更新数据库
更新并不是真的自己写语句去更新某一个字段,使用直接用整个对象拿去更新
19、设定时区
date_default_timezone_set("PRC");
20、登陆账户时点击图片重新获取验证码
<img id="idGetVerify" src="getVerify.php" alt="" onclick="getNewVerify();" />
<script type="text/javascript">
function getNewVerify(){
document.getElementById("idGetVerify").src="getVerify.php";
}
</script>

正文到此结束
本文目录