一家之言的经验之谈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 相关文章推荐
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
php动态变量定义及使用
Jun 10 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
php面象对象数据库操作类实例
2014/12/02 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jquery获取节点名称
2015/04/26 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
js简单时间比较的方法
2016/08/02 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
用Python实现一个简单的线程池
2015/04/07 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
django初始化数据库的实例
2018/05/27 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
Python WSGI 规范简介
2021/04/11 Python
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
Mybatis是这样防止sql注入的
2021/12/06 Java/Android
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL