初学php做的有关php有关知识的了解

一.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 $name
	var $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 $name
	public $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两个星期说了解到的,个人的一些见解,说的有什么问题,希望大家和我讨论交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Violet丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值