要是有人问你,你写的PHP程序都有那些内容,也许你还真的不知道!变量,数据类型,对象,数组,分支结构,循环结构,数据库等等等,天啊,我那记得住啊!你记不住,我也记不住啊!

换句话说,就是该怎么写程序。

但是,大家上学的时候都学过数据结构吧,学过结构化设计语言Pascal吧!有人说了,没学过,那C语言应该学过吧!要是也没学过,那也没有关系!

这个公式应该还记得吧:

算法 + 数据结构 = 程序 或者 算法 + 数据结构 + 程序设计方法 + 语言和工具 = 程序

那什么是程序呢?其实说白了,就是一个模块。写程序,其实就是写一个模块,或者你用对象也可以。或者说是一个盒子也行。反正,只要理解了就行。

那么算法是什么呢?其实就是解决问题的方法。

数据结构是什么呢?其实就是数据在计算机里面是怎么存储的方法。

语言是什么呢?就是写程序的工具。可以是PHP,ASP.NET,VB.NET,C#,Ruby,Python,SQL等等。

程序设计方法是什么呢?其实就是组织结构,怎么把算法,数据结构组织起来的方法,比如:OOD,结构化程序设计等等。

所以,说一千到一万,目前,所有的程序,写出来的模板都应该是一样,都应该包括以下的内容:输入/输出,内部变量,模块逻辑结构。不信,不可能,胡说。不要乱扣帽子,我们可以举例子来说明。在这里,我只拿PHP的程序来说明,其它的语言,你可以参考老鸟的观点,自己思考一下。

1)只有输出,没有输入。<?php
echo \"Hello World!\";
?>2)有输入,有输出。<?php
include(\"conn/conn.php\");
$type=$_POST[type];
$title=$_POST[title];
$content=$_POST[content];
$linkman=$_POST[linkman];
$tel=$_POST[tel];

//$edate=date(\"Y-m-d h:i:s\");
$edate=date(\"Y-m-d H:i:s\");

$sql=mysql_query(\"insert into tb_info(type,title,content,linkman,tel,checkstate,edate) values('$type','$title','$content','$linkman','$tel',0,'$edate')\");

// 前面这么一大堆语句是做什么用处的呢?废话,当然是获取提交的数据啊!

// 验证,并依据验证结果跳转到对应页面
if($sql){
echo \"<script>alert('恭喜您,信息发布成功!');window.location.href='release.php';</script>\";
}else{
echo \"<script>alert('对不起,信息发布失败!');history.back();</script>\";
}

?>
3)复杂的输入/输出<?
class MysqlConn{
private $conn;
private $my_db;
private $result;

// 系统初始化
public function __construct(){
require_once(\"db_config.php\");
$this->conn = mysql_pconnect($db_server, $db_user, $db_pwd);
$this->my_db = mysql_select_db($db_name,$this->conn);//选择数据库

}

// 对应的方法
public function query($sql){
$this->result = mysql_query($sql, $this->conn); // 执行查询语句
return $this->result;
}

public function next(){
return $row = mysql_fetch_array($this->result);

}

public function close(){
mysql_free_result($this->result);
}
//使用转义字符,保证系统安全.
public function escapeString($str){
return mysql_escape_string($str);
}

}

?>这段代码是什么意思,你不知道OOP的,应该大概也知道是做什么了吧!

当然,有些程序或者叫代码,写的可能就很复杂,但不管怎么写,你按照这个思路去看代码,应该知道人家为什么这么写了!

但是,实际上呢,我们的任何的程序,其实还应该加上一个UI,也就是用户界面。

那么在PHP中,它支持那些用户界面呢?很简单,浏览器,窗口,控制台。当然,PHP做窗口不是很方便,它更多的是做浏览器的。是不是还有其它用户界面呢?我不知道,你要是知道的话,可以告诉我!

最后的小结:
一个程序应该有那些内容呢?

算法 + 数据结构 + UI = 程序

你可以审视一下过去你写的那些代码,或者,你看人家写的代码,不管这些代码是怎么写的,它的格式都是一样的,唯一不同的就是语法的不同。

当然,为什么有些代码我看不懂呢,那其实是因为,它里面包含了很多的算法。比如:在游戏开发中经常用到下列一些算法:A*,排序。贪婪,遗传等。当然,有好多算法是已经实现了各种数据结构和算法。我们只需要怎么做就可以了。当然,有时间的话,我们也可以理解为什么要这么做?但,我估计,除非你是做系统开发的,否则,劝你还是打消这个念头吧!因为,时间和精力是有限的!

转载于:https://blog.51cto.com/richardzhu/196756

一段典型的PHP程序都包含那些内容呢?相关推荐

  1. 软件功能测试报告都包含哪些内容,测试报告如何获取呢

    软件功能测试对于大家都不陌生,当一个软件程序被开发完成后这是最基本的测试,但是想要满足市场需求的话一份权威的软件测试报告是无比重要,那么软件功能测试报告都包含哪些内容呢,如何获取有效的软件功能测试报告 ...

  2. 管理的基础知识都包含哪些内容

    首先,要学习管理基础知识最好的办法是多阅读一些管理方面的经典著作.我个人比较推荐你看些类似<经理人参阅:企业管理实务>这样的书籍,能让你快速入门管理学及建立企业管理的专业知识体系. 那么, ...

  3. sql包含怎么写_实习生简历怎么写?都包含哪些内容?

    一年毕业季又快到了,每年应届毕业人数都在增长,面对茫茫找工作的人潮,你是否有所恐慌?如果大学没有太多经历的话,只是去应聘实习生,那么实习生简历要怎么写呢.今天我们就来讲讲实习生简历模板都包含哪些内容. ...

  4. 改版的PMP很难吗?新考纲3大模块都包含哪些内容?如何提高通过率?

    在PMP新考纲中,所考的内容约有50%内容体现在项目管理中的预测法内,而另外的一半则是体现敏捷方法或混合方法.而三者(预测法.敏捷方法和混合方法)方法又将体现在三大领域:人员.过程.业务环境内,并非独 ...

  5. 计算机软件开发包含类容,系统程序开发软件的运行日志都包含哪些内容

    从小我们就被老师要求写日记,长大了上班之后又被要求写日报.周报..月报.而同样的,对于程序员来说,系统操作日志也是需要准备一份的,当然了,这个就不需要工程师自己写了,只要在程序中做好设定就可以. 今天 ...

  6. 人工智能阿发狗技术都包含哪些内容

    游戏"导演"怎么教人工智能"入戏" 他正在指导一名TD(技术策划)进行策划,让人工智能更有"人味儿".刘亮从事游戏策划13年,曾参与< ...

  7. 浏览器地址栏的完整URL都包含哪些内容都各代表什么?

    URL URL全称:Uniform Resource Location 译为:统一资源定位符: 讲解URL首先我们要找个完整例子好做解释: 如:"http://www.baidu.com/i ...

  8. 汇编中的.section命令及汇编语言程序都至少声明的3个段

    汇编语言中最重要的命令之一是.section命令.这个命令定义内存段,汇编语言程序在其中定义元素.所有汇编语言程序都至少具有3个必须声明的段落: ·数据段 ·bss段 ·文本段 数据段用于声明为程序存 ...

  9. 71道经典Android面试题和答案,重要知识点都包含了

    更多源码下载,请关注微信公众号:互联网技术分享 面试题 1.        下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存   B.内存回收程序负责释放无用 ...

最新文章

  1. 多进程和多线程的概念
  2. antlr idea 入门_ANTLR:入门
  3. JAVA高并发秒杀系统构建之——高并发优化分析
  4. C中的extern-static-const关键词
  5. 云原生技术的挑战是什么?
  6. python动态爱心曲线_使用matplotlib动态刷新指定曲线实例
  7. python产生随机数组_Python生成随机数组的方法小结
  8. js设置css行内样式
  9. 信息系统项目管理师计算题(进度管理总浮动时间、自由浮动时间、工期)
  10. 机房服务器维修合同,机房维护合同模板.doc
  11. iOS-SEL的用法和讲解
  12. 【Excel】Excel无序数据模糊查询
  13. HTML5:爱奇艺首页图片轮播效果
  14. 论文阅读(21 AAAI)Mind-the-Gap Unsupervised Domain Adaptation for Text-Video Retrieval
  15. echart柱状图、电池图、3D柱图、3D圆柱图
  16. 丁书苗发家过程披露:结识刘志军后财富增10倍
  17. 1989-2020中国省级平均受教育年限与学历结构数据
  18. JetBrains全家桶安装、学生认证以及IDE中文设置
  19. Android二维码识别率优化,Android Zxing 转换竖屏扫描且提高识别率的方法
  20. C语言内部函数与外部函数

热门文章

  1. 03-命令图片.doc
  2. kafka系列九、kafka事务原理、事务API和使用场景
  3. validation注解及自定义注解
  4. 十二届 - CSU 1803 :2016(同余定理)
  5. WebSocket-java实现
  6. 找新朋友(欧拉函数)
  7. Android模拟器慢的解决办法
  8. Android笔记 Application对象的使用-数据传递以及内存泄漏问题
  9. java merge json出错删除相同的json
  10. nginx+ssl+pm2 部署 nodejs 服务