一家之言的经验之谈php+mysql扎实个人基本功


Posted in PHP onMarch 27, 2008

一. 10句话
1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global的ON/OFF会对自己有什么影响的那天起,就应该勇敢地把它设为OFF.
2.写程序前看看怎么用error_reporting.
3.不懂就问本身没错,但你需要在那之前查查手册。
4.当然,你需要懂得使用手册。手册上找不到答案的时候,应该考虑下网络上的搜索引擎。
5.刚学会php+mysql之后,不要叫嚷着要写论坛,要写XXX。要明白,刚学会写汉字并不表示你有能力写诗。
6.在学web编程的时候,你应该先去认识html这个朋友。
7.有点能力后,试着回答新手的问题,不要看到自己懂的而别人不懂就沾沾自喜,扔下一名“简单,那是基本的东西”就走更要不得。
8.思考是一个好习惯,不动手去写就等于空想,什么也没有。
9.写好一段程序,如果觉得很满意,一周后再看一遍,也许你会认为它应该有所改变
10.有空多看看别人的程序,找出他人的不足或优点,自己掂量。
二. 各取所需

1.善于使用“引用”,它能直接影响到程序的效率。

2.善于用三元运算子,可以让程式较精简有效率。
比如:

PHP代码:--------------------------------------------------------------------------------
if ($data[$i]['nickname'])
{
  $nickname = $data[$i]['nickname'];
}
else
{
  $nickname = $data[$i]['ip'];
}

--------------------------------------------------------------------------------

可以写成:

PHP代码:--------------------------------------------------------------------------------
$nickname = $data[$i]['nickname'] ? $data[$i]['nickname'] : $data[$i]['ip'];

--------------------------------------------------------------------------------

3.善于组织if...else...回圈
比如:

PHP代码:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!empty($type))
{
  if (!strpos($type, $ext_name))
  {
    echo "Please upload the file of $type form.";
    exit();
  }
}

--------------------------------------------------------------------------------

上面的代码你应该写成这样:

PHP代码:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!($type==='') && strpos($type, $ext_name)===false)
{
  echo "Please upload the file of $type form.";
  exit();
}

--------------------------------------------------------------------------------

4.尽量让你的代码清淅些
如果写成这样,是比较让人头痛的:

PHP代码:--------------------------------------------------------------------------------
$foo=$_post["foo"];
  $username=$_post["user"]; 
$group=$_POST["group"];
if ($group=="wheel"){
$username=$username."wheel";
}

--------------------------------------------------------------------------------

同样的代码,这样就比较让人看得舒服了:

PHP代码:--------------------------------------------------------------------------------
$foo     = $_post["foo"];
$username = $_post["username"];
$group   = $_POST["group"];
if ($group=="wheel")
{
  $username = $username."wheel";
}

--------------------------------------------------------------------------------

当然,有一定基础后,你应该要写成这样:

PHP代码:--------------------------------------------------------------------------------
$foo     = &$_POST['foo'];
$username = $_POST["group"]!='wheel' ? $_POST["username"] : $_POST["username"].'wheel';

--------------------------------------------------------------------------------

5.编写规范的mysql 语句。
字段和表名用"`"引起来,避免保留字的影响。
如果看到下面这样的一个sql query,会让人比较头痛:

PHP代码:--------------------------------------------------------------------------------
$query="select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` from `flash_comment` left join `product` on ( `flash_comment`.`p_no` = `product`.`p_no` ) left join `sgflash` on ( `product`.`p_name` = `sgflash`.`f_name` ) where `flash_comment`.`p_no` != '' order by `flash_comment`.`date`";

--------------------------------------------------------------------------------

同样的一个query,写成这样就令人看得明白得多了:

PHP代码:--------------------------------------------------------------------------------
$query = "Select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` 
      FROM `flash_comment` 
      LEFT JOIN `product` ON ( `flash_comment`.`p_no` = `product`.`p_no` ) 
      LEFT JOIN `sgflash` ON ( `product`.`p_name` = `sgflash`.`f_name` ) 
      Where `flash_comment`.`p_no` != ''
      orDER BY `flash_comment`.`date`";

--------------------------------------------------------------------------------

//
..... 

PHP 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
php二维码生成
Oct 19 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 PHP
php数值计算num类简单操作示例
May 15 PHP
PHP安全之register_globals的on和off的区别
Jul 23 PHP
php部分常见问题总结
Mar 27 #PHP
php+mysql分页代码详解
Mar 27 #PHP
Mysql和网页显示乱码解决方法集锦
Mar 27 #PHP
require(),include(),require_once()和include_once()区别
Mar 27 #PHP
php图片验证码代码
Mar 27 #PHP
几个php应用技巧
Mar 27 #PHP
PHP详细彻底学习Smarty
Mar 27 #PHP
You might like
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
python 如何区分return和yield
2020/09/22 Python
Python通过format函数格式化显示值
2020/10/17 Python
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
普通员工辞职信
2014/01/17 职场文书
2014年端午节活动方案
2014/03/11 职场文书
社团活动总结
2014/04/28 职场文书
销售个人求职信范文
2014/04/28 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
导游词格式
2015/02/13 职场文书
房贷工资证明范本
2015/06/12 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技