一.PHP的基本介绍

(1)背景        
         开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 
           PHP是能让你生成动态网页的工具之一。 PHP代表:超文本预处理器 
(2)特征 
       1. PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。 
        2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。 
       3. PHP支持几乎所有流行的数据库以及操作系统。 
       4.他的代码基本都是开源的,很方便我们借鉴学习 
 二.PHP的知识 
(1)入门 
        了解PHP的一些基本的知识,知道它的一些变量和常量,以及运算符,以及定义使用数组,掌握PHP中顺序结构、条件结构、循环结构三种语言结构语句 
(2)PHP的函数 
      PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。 
     PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。 
      自定义函数 
      系统的函数 
       
PHP面向对象开发 
 “面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法,而主要是我们要面对的就是面向对象的编程实现 
 
 面向对象的三大特点(封装,继承,多态)缺一不可 
 
类:具有相同属性和服务的一组对象的集合,我们可以理解成一个功能集合菜单,可以通过类来实现生成我们的方法 
 
对象:系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,类的实例化结果就是对象 
         举个例子吧,如果你去中关村想买几台组装的PC机,到了那里你第一步要干什么,是不是装机的工程师和你坐在一起,按你提供的信息和你一起完成一个装机的配置单呀,这个配置单就可以想象成是类,它就是一张纸,但是它上面记录了你要买的PC机的信息,如果用这个配置单买10台机器,那么这10台机子,都是按这个配置单组成的,所以说这10台机子是一个类型的,也可以说是一类的。那么什么是对象呢,类的实例化结果就是对象,用这个配置单配置出来(实例化出来)的机子就是对象,是我们可以操作的实体,10台机子,10个对象。每台机子都是独立的,只能说明他们是同一类的,对其中一个机做任何动作都不会影响其它9台机器,但是我对类修改,也就是在这个配置单上加一个或少一个配件,那么装出来的9个机子都改变了,这是类和对象的关系(类的实例化结果就是对象)。

什么是面向对象编程呢?

例: 
    如果你想建立一个电脑教室,首先要有一个房间,房间里 面要有N台电脑,有N张桌子,N把椅子,白板,投影机等等,这些是什么,刚才咱们说了,这就是对象,能看到的一个个的实体,可以说这个电脑教室的单位就是这一个个的实体对象,它们共同组成了这个电脑教室,那么我们是做程序,这和面向对象有什么关系呢?开发一个系统程序和建一个电脑教室类似,你把每个独立的功能模块抽象成类,形成对象,由多个对象组成这个系统,这些对象之间都能够接收信息、 处理数据和向其它对象发送信息等等相互作用。就构成了面 向对象的程序 
 
我个人认为面向对象的学习这是通向PHP编程高手的重要的一步,虽然我们现在没怎么用,但是,我们也应个学习了解它,下面讲下面向对象的简单的实例;

类的创建:class   
使用new函数对象的实例化 
     
下面是一个类的创建及实例化的小例子

class Person{//下面是人的成员属性var $name;//人的名子  public $namevar $sex;//人的性别var $age;//人的年龄//下面是人的成员方法 function say()//这个人可以说话的方法{ echo"这个人在说话";} function run()//这个人可以走路的方法{echo"这个人在走路";}
} $p1=new Person();//创建实例对象$p1
$p2=new Person();//创建实例对象$p2
$p3=new Person();//创建实例对象$p3//下面三行是给$p1对象属性赋值
$p1->name="张三";
$p1->sex="男";
$p1->age=20; //下面三行是访问$p1对象的属性
echo"p1对象的名子是:".$p1->name."<br>";
echo"p1对象的性别是:".$p1->sex."<br>";
echo"p1对象的年龄是:".$p1->age."<br>";//下面两行访问$p1对象中的方法
$p1->say();
$p1->run(); ?>

通过这个例子看出只是对象里面的成员使用 对象->属性、对象->方法形式访问,再没有第二种方法来访问对象中的成员了,所以就引出--特殊的引用“$this”的使用

我们可以理解为$this是在对象中特殊的一种使用构造函数和变量的方法, $this仅能在当前对象中使用,这样就大大的减少了代码的繁琐,这就是在对象内部访问对象属性的方式

class Person{//下面是人的成员属性public $name;//人的名子  public $namepublic $sex;//人的性别public $age;//人的年龄//下面是人的成员方法 function say()//这个人可以说话的方法{echo "我的名子叫:".$this->name."性别:".$this->sex."我的年龄是:".$this->age."<br>"; }function run()//这个人可以走路的方法{ echo"这个人在走路";}
}$p1=new Person();//创建实例对象$p//下面三行是给$p1对象属性赋值
$p1->name="李四";
$p1->sex="女";
$p1->age=30;
//下面访问$p1对象中的说话方式
$p1->say();

常见的函数 
1.OpenSSL函数 mysql 
     这个就是我们在进行数据库的操作相关的 
   mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数 
   mysql_connect — 打开一个到 MySQL 服务器的连接 
   mysql_num_rows — 取得结果集中行的数目 
 
2. Date() 函数 
     可把时间戳格式化为可读性更好的日期和时间 
语法 
date(format,timestamp) 
format 必需。规定时间戳的格式。 
timestamp 可选。规定时间戳。默认是当前的日期和时间。 
   time()函数:显示系统当前时间 
   date()函数:将服务器的时间格式化 
 
 
 3. array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false,从而实现数组值的删除 
 
4.header()函数 
    header()函数的作用是:发送一个原始 HTTP 标头[Http Header]到客户端 
例: 使浏览器重定向到 PHP 的官方网站。 
 
<?PHP 
Header("Location: http://www.php.net";); 
exit;   //在每个重定向之后都必须加上“exit",避免发生错误后,继续执行。 
?> 
<?php 
禁止页面在IE中缓存    
让使用者的浏览器出现找不到档案的信息 
    (3)PHP的框架及应用 
     它们都多半采用了MVC模式,还有基于事件驱动模式的,通过框架可以减少很多底层的重复开发,更重要的是可以让多人协作更加容易和让项目更易于扩展 
 
模型(Model)、视图(View)和控制器(Controller) 
 
 Smarty,它将原本与HTML代码混杂在一起PHP代码逻辑分离,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,让美工和程序基本可以并行工作(前提是需求做得比较完善) 
 
Smarty优点 
       1. 速度快:相对其他模板引擎。 
       2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件 
       3 缓存技术:它可以将用户最终看到的HTML文件缓存成一个静态的HTML页 
       4. 插件技术:smarty可以自定义插件 
 三.PHP相关的知识 
(1)HTML 
(2)DIV+CSS 
     注意的几个小问题: 
1.Div嵌套关系的错误,结束标记的漏写 
2.Css的代码的错误 
3.对一些标签默认样式,对不同浏览器会有不同的设置方式 
 
(3)数据库相关的知识 
  数据建立  连接 
  数据库的操作:增,删,查,改 
 
(4) JavaScript 
      广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,是一种解释性脚本语言,通过嵌入在HTML中来实现自身的功能 
 (5)Ajax技术 
   AJAX 可以使网页实现异步更新 
        
上面这些内容主要是对php有个大概的了解,下面就是我自己在进行php代码编写时所遇到的一些问题; 
  
1.页面之间无法传递变量  从上一页面取得提交过来得变量要使用$_GET[‘  '],$_POST[‘  '],$_SESSION[‘  ']来得到 
 
2.有时候sql语句不起作用,对数据库操作失败。最简便的调试方法,echo那句sql,看看变量的值是否能得到 
 
3. header already sent 
   这个错误通常会在你使用header的时候出现,他可能是几种原因:1,你在使用header前pring或者echo了2.你当前文件前面有空行3.你可能include了一个文件,该文件尾部有空行或者输出也会出现这种错误。 
4.isset()和empty()的区别 
     两者都是测试变量用的,但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空。如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示 
 
5.php中对类成员的引用方式,上面的引用应该为$name=$user->getName(),即使用->符号,而不是 Java中使用的“.”号 
 
6.PHP中连接两个字符串是运用”.”操作符号,而如java就运用”+”实现的

7.Section与Cookie使用总结 
     Session 将信息保存在服务器上.服务器在接受到唯一的SESSION_ID后,根据这个ID获取相关数据,然后将信息传递到客户端(浏览器) 
     Cookie 是将所有信息以文本的形式存在本地文件,并由客户端(浏览器)进行管理与维护 
 
    Session 数据存储在server端,所以远程client无法对数据进行修改;而Cookie存储在client本地,容易被获取和篡改.所以Session安全性较高.

PHP代码的总结 
 
1- 编写模块化代码  
良好的PHP代码应该是模块化代码。PHP的面向对象的编程功能是一些特别强大的工 具,可以把你的应用程序分解成函数或方法。你应该尽可能多的从你的应用程序的服务器端分开前端的HTML/CSS/JavaScript代码。你也可以在 任何PHP框架上遵循MVC(模型-视图-控制器)模式。 
  
2- 代码编写规范 
良好的PHP代码应该有一套完整的代码编写规范。通过对变量和函数的命名,统一的方法访问数据库和对错误的处理,以及同样的代码缩进方式等来达到编程规范,这样可以使你的代码更具可读性。   
 
3- 编写可移植代码 
良好的PHP代码应该是可移植的。你可以使用php的现有功能,如魔术引号和短标签。试着了解你的需求,然后通过适应PHP特性来编写代码让代码独立、可移植。   
 
 4- 编写安全代码 
良 好的PHP代码应该是安全的。PHP5提供了出色的性能和灵活性。但是安全问题完全在于开发人员。对于一个专业的PHP开发人员来说,深入理解重大安全漏 洞是至关重要的,如:跨站点脚本(XSS)、跨站请求伪造(CSRF)、代码注入漏洞、字符编码漏洞。通过使用PHP的特殊功能和函数, 如:mysql_real_escape_string等等,你可以编写出安全的代码。   
 
5- 代码注释 
代码注释是代码的重要组成部分。通过代码注释可以知道该变量或函数是做什么的,这将在今后的代码维护中十分有用。   
 
6- 避免短标签 
把所有用到短标签的替换成完整的PHP标签。   
 
7- 使用单引号代替双引号 
字符串始终使用单引号代替双引号,以避免PHP搜索字符串内的变量导致的性能下降。 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会  
 
 8- 转义字符串输出 
使用ENT_QUOTES作参数传递给htmlspecialchars函数,以确保单引号(')也转换成HTML实体,这是一个好习惯。   
 
9- 使用逗号分隔字符串输出 
通过echo语句输出使用逗号(,)分隔的字符串,要比使用字符串连接操作符(.)的性能更好。

10- 输出前检查传来的值 
输出前检查传过来的值$_GET['query']。使用isset或empty函数,可以用来检查变量是否为null值。

以上就是我学习php两个星期说了解到的,个人的一些见解,说的有什么问题,希望大家和我讨论交流。

初学php做的有关php有关知识的了解相关推荐

  1. 近视手术,是福音还是噩梦,知道这些危害,你还敢做吗,眼科小知识都在这里

    Hi,大家好,这是一篇非技术性文章,这篇主要想介绍激光近视手术的危害,让每个想做近视手术的朋友心里有个预期,当然这些问题发生的概率可能很小,但是落在你身上就是 100%,请看完之后在决定是否做手术. ...

  2. 知识付费做得蕞好的知识变现平台

    哈喽,大家好,我是海哥,知识付费变现创业教练,教育公司培训总监,从事知识付费变现咨询10年,已助力3000+人实现知识付费变现.今天给你分享几个知识付费平台,也算是知识付费行业做得蕞好的知识变现几个平 ...

  3. 冷知识项目教程,​教你如何做一个抖音冷知识账号

    白嫖的冷知识项目教程,教你如何做一个抖音冷知识账号 变现途径:带货,星图广告,收徒 课程目录: 1-养号.mp4 2-找素材.mp4 3-素材剪辑.mp4 4-配音软件使用.mp4 5-导入配音及画面 ...

  4. python 数据分析学什么-利用Python做数据分析 需要学习哪些知识

    根据调查结果,十大最常用的数据工具中有八个来自或利用Python.Python广泛应用于所有数据科学领域,包括数据分析.机器学习.深度学习和数据可视化.不过你知道如何利用Python做数据分析吗?需要 ...

  5. python return用法_初学Python要了解什么 装饰器知识汇总有哪些

    初学Python要了解什么?装饰器知识汇总有哪些?在Python学习过程中,有多种方法对函数和类进行加工,相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用,比 ...

  6. 【初学】部署架构相关的一些知识

    部署架构相关的一些知识 集群 Nginx 分布式 热备 中间件 集群 集群,这里指服务器集群,是指多个服务器完成同样的功能,在客户端看来就只有一个服务器.起初系统比较简单的时侯,一个服务器足以完成所有 ...

  7. 自己动手做聊天机器人 一-涉及知识【转】

    转自:http://www.shareditor.com/blogshow/?blogId=63 人工智能一直以来是人类的梦想,造一台可以为你做一切事情并且有情感的机器人,像哆啦A梦一样,现在这已经不 ...

  8. python数据分析做什么作业好_知识星球 | 说说我为什么要做『python数据分析』社群...

    过去一段时间,很多人会问我: "现在的工作没有前途,该如何转行?" "我知道数据时代已经来了,我该如何学习,不让自己落伍?" "数据分析适用于生活和工 ...

  9. 自己动手做聊天机器人 一-涉及知识

    人工智能一直以来是人类的梦想,造一台可以为你做一切事情并且有情感的机器人,像哆啦A梦一样,现在这已经不是一个梦了:iPhone里会说话的siri.会下棋的阿法狗.小度机器人.大白......,他们都能 ...

最新文章

  1. Kafka配置SSL(云环境)
  2. 4.Spring Security 添加图形验证码
  3. go 向buff写入一个字节_我在 Go 中犯的 5 个错误
  4. 全网独发gensim中similarities.Similarity用法
  5. 大快搜索城市运河大数据政务管理平台案例解读
  6. python为什么不能以数字开头_python变量为什么不能以数字开头
  7. 数据结构之并查集:并查集解决案例, Python——21
  8. 基4fft算法的蝶形图_原地且自动整序的FFT算法
  9. unittest Module中的常用6种断言方法
  10. java 逻辑或 作用_Java开发中与之间的区别,你真的知道吗?
  11. 弱网络环境下最优调度和优化传输层协议方案
  12. android c++ http,开源一个C++实现的简单HTTP协议处理库
  13. 通过两个简单的案例,让你明白ansible playbook的编写核心
  14. 重庆大学c语言程序设计基础,c语言程序设计基础黄文胜
  15. 机器学习笔记——乳腺癌鸢尾花分类问题详解(没有直接调包)
  16. CSS图片3D旋转效果
  17. 三次样条拟合(附完整代码)
  18. 2017年5月14日 星期日 --出埃及记 Exodus 26:2
  19. python 投掷筛子游戏
  20. 【SpringBoot】 十二、themeleaf 的3种引入页面方式

热门文章

  1. lcms质谱仪_LCMS-2020
  2. 磁盘磁盘未被格式化数据怎样恢复
  3. 关于搭建rabbitmq集群报错Error: unable to perform an operation on node ‘rabbit@localhost‘. Please see diagnos
  4. Ubuntu14.04下Endpoint5.1的安装及使用方法
  5. 如何使用有限元分析确定角焊缝的尺寸
  6. 会动的古代名画,如画的江南古镇
  7. k线图及单个k线图形态分析
  8. 保护卡自动改IP程序实现方法(根据现有保护卡的种种迹象猜的)
  9. CSUSTOJ-藤原书记的佩斯(简单数学)
  10. Mac Excel 自网站(导入网页数据)