我的php学习笔记(毕业设计)

php语法简单,应用也非常好,而且类库强大,确实能写出很强大的服务器端。对于我这种只需要小功能服务器的人来说,再好不过了。
  单纯的说学习php,我觉得还是看手册的好。花了几天时间看了看语法,因为有编程基础,所以现在看起来就比较快了。刚用php写完一个简单的服务器,当然是有目的,准备用来支持一个订票系统的客户端。下面是我学习过程的笔记。以后也好有个回顾。
  当不存在某个类的对象时,可以通过作用域分辨符(::)来调用某个类中的方法;
  访问基类中的方法时可以写成 parent::method();
  serialize() 返回一个字符串,包含着可以储存于 PHP 的任何值的字节流表示。
  unserialize() 可以用此字符串来重建原始的变量值。
  用序列化来保存对象可以保存对象中的所有变量。对象中的函数不会被保存,只有类的名称。
  序列化与反序列化同一个对象时,可以采用包含同一对象的定义文件方法来实现。
  这是因为“new”默认并不返回引用,而返回一个拷贝。
  php5
  类与对象的特点:
  visibility:可见性
  属性的访问限度:public:任何地方都可以访问到此属性,
  protect派生类或者父类可以访问到这个属性,或者任何定义了这个属性的类内的某个项)
  private:只有类内部才能访问
  A member declared as static can not be accessed with
  an instantiated class object (though a static method can).
  Static members and methods cannot be re-defined in subclasses.
  (如果一个成员被定义为静态的,那么该成员不能被实例化对象访问,
  静态成员不能在子类中被重新定义)。
  静态定义必须在访问属性之后,如:protect static
  静态方法可以不实例化调用,所以使用静态方法时不能带有$this参数。
  静态成员不能用->来访问。
  constant:常量关键字, const 用于定义 不可改变的常量,定义时不需要使用$符号。
  定义方法一般为:const aconstant = 'constant';
  php中gloabl定义的变量是在整个页面中使用的,包括require包含的页面和include包含的页面。
  抽象类:
  抽象类不能实例化,任何带有抽象方法的类必须定义为抽象类。
  继承抽象类的话,任何在抽象类中的抽象方法都必须重写实现。这些方法的访问限度只能
  和抽象父类的方法的访问限度相同或更低。
  抽象类和抽象方法都使用 abstract作为关键字。
  对象接口(object interface)
  对象接口允许你规定哪些方法必须实现,而不是让你定义哪些方法怎么被捕捉。
  对象接口使用 interface 关键字来定义。它是一个标准的类,但是它的任何方法都没有被实现。
  任何在接口对象中的方法都必须是公有的,这是接口对象必须遵循的。
  实现一个接口必须使用implements标示,所以接口方法实现必须在一个类里面。一个类可以实现多个接口。
  重载:
  迭代器:
  迭代器可以访问类里面所有的公有对象成员。
  实现PHP5里面的迭代器接口,这样可以允许你定义,对象怎么被迭代访问。
  设计模式:
  设计模式提供了一个良好的框架来实现一些功能组织。
  工厂模式:在运行过程中实例化一个要求的对象。
  单利模式:最明显的一个例子就是:数据库连接对象。下面是一个最好的单例模式范例:
  Singleton Function


代码如下:

  <?php
  class Example
  {
  // Hold an instance of the class
  private static $instance;
  // A private constructor; prevents direct creation of object
  private function __construct()
  {
  echo 'I am constructed';
  }
  // The singleton method
  public static function singleton()
  {
  if (!isset(self::$instance)) {
  $c = __CLASS__;
  self::$instance = new $c;
  }
  return self::$instance;
  }
  // Example method
  public function bark()
  {
  echo 'Woof!';
  }
  // Prevent users to clone the instance
  public function __clone()
  {
  trigger_error('Clone is not allowed.', E_USER_ERROR);
  }
  }

  你还可以实现php5里面的iteratoraggregate接口对象来定义自己的迭代方法。
  魔术函数:
  The function names __construct, __destruct (see Constructors and Destructors),
  __call, __get, __set, __isset, __unset (see Overloading), __sleep, __wakeup,
  __toString, __clone and __autoload are magical in PHP classes.
  这些函数在存在于每一个php类中。你不要随意使用__来定义函数,除非你真的想这个函数具有魔术功能。
  __tostring()函数,这个函数将决定一个对象转换为字符的时候将发生的事。
  final关键字:
  final关键字用来阻止应用final关键字声明的类或者方法被继承,被覆盖。
  参数类型强制:
  可以在参数前面加上类名类控制传入的参数类型。
  require() 和 include() 除了怎样处理失败之外在各方面都完全一样。
  include() 产生一个警告而 require() 则导致一个致命错误。
  换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。
  require_once() 语句在脚本执行期间包含并运行指定文件。
  此行为和 require() 语句类似,
  唯一区别是如果该文件中的代码已经被包含了,
  则不会再次包含。有关此语句怎样工作参见 require() 的文档。
  PHP 有一个类型运算符:instanceof。instanceof 用来测定一个给定的对象是否来自指定的对象类。
  代码范例:


代码如下:

<?php
  class A { }
  class B { }
  $thing = new A;
  if ($thing instanceof A) {
  echo 'A';
  }
  if ($thing instanceof B) {
  echo 'B';
  }
  ?>

  的 PHP 代码段结束标记可以不要,有些情况下当使用输出缓冲和
  include() 或者 require() 时省略掉会更好些。
  include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
  __CLASS__ :指的是当前类。
  异常处理,根据需要扩展异常处理类exception
  require()语句包含并运行指定文件;

(0)

相关推荐

  • php网上商城购物车设计代码分享

    首先,购物车的数据库设计: 1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods_sn 商品编码 5. goods_name 商品名称 6. shop_price 商品商城售价 7. goods_price 商品真实售价(与shop_price的区别在于,当打折的时候,shop_price是打折之前商品的售价,而goods_price是打折之后的) 8. goods_number 数量 9. weight 商品重量 10. goods_attr

  • php 网上商城促销设计实例代码

    大体的思想,每一个促销要新建一个促销类,有专门的开关来控制是否生效. 用商品里面的促销识别码来判断具体调用哪一个促销实例. 首先,在添加商品的时候,分两步,第一步是添加状态,第二步是把购物车内的商品显示这个状态. 一,添加步骤几个重要的点: 1,添加商品之前,遍历所有的促销互斥条件. 例如,某一款商品不可以和另一个商品同时在一个购物车内:或者某个用户权限,不可以购买特定的一件商品等等. 2,添加商品之前,选择特定的促销实例,来进行添加之前的操作. 注:第二点与第一点的区别在于1是要遍历所有的促销

  • 网上考试设计思路是怎样的?

    global.asa < script LANGUAGE=VBScript RUNAT=Server > Sub Application_OnStart dbPath = "DBQ=" & Server.Mappath("onlinetest.mdb") dbConnectionString =  "DRIVER={Microsoft Access Driver (*.mdb)}; " & dbPath Set App

  • C#影院售票系统毕业设计(3)

    前一篇文章<C#影院售票系统毕业设计(2)>中总结了动态绘制控件.票类型的切换以及数据在窗体中的展现.今天继续总结! 本文总结项目中最核心的部分--购票.座位颜色状态的改变及场次座位状态的显示. 分析: 1.在选中时间(场次)后更新出座位状态(label实现),售出的为红色,未售出的显示为黄色. 2.已售出提示已经售出并不进行任何操作,未售出的询问是否购买. 3.根据选择的是普通票.赠票.还是学生票分别创建不同的票对象 如果选择赠票则需要检测赠送者否填写 如果选择的是学生票需要检测折扣是否选择

  • ASP.NET网站聊天室的设计与实现(第3节)

    大家都玩过网站聊天室吧,那知道它是怎么实现的吗? 今天我们就来设计一个网站聊天室,用户输入用户名登陆聊天室,采用框架结构实现. 学习内容: 第一步,聊天室首页与简单计数器设计 1.打开VS2008.在"解决方案'101'下新建网站,命名为Chatroom.默认首页文件为Default.aspx. 2.为Default.aspx添加窗体控件,切换到"设计"视图,从左侧工具箱标准组中拖出2个Lable控件,1个Textbox控件,一个Button控件,最后给输入昵称的Textbo

  • 管理员登录设计(第7节)

    本文实现管理员登录效果,当用户名和密码正确时,弹出登录成功提示,否则弹出用户名或密码错误提示. 今天有以下三大学习任务: 学习任务一 了解命名空间的定义 定义   namespace 空间名   {  类  }  引用  using 空间名 学习任务二 实现管理员登陆界面的设计 界面布局具体如图所示: 小提示:在插入表格的时候,应注意表格的大小.布局.边框.背景的设置,提前做好准备,可以节省接下来的工作:第二点就是区分image与imagebutton. 学习任务三 实现登录界面的验证 步骤1:

  • C#影院售票系统毕业设计(2)

    本文继续更新,动态绘制控件.票类型的切换以及数据在窗体中的展现. 先从简单的开始,票类型的切换. 分析: 1.当点击普通票时 学生折扣和赠送者是禁用的 2.点击赠票时 启用赠送者,禁用学生折扣 3.点击学生票时 启用学生折扣,禁用赠送者 学生折扣ComboBox下拉框可以选择折扣,根据折扣实时折扣计算价格到优惠价上. 需要注意的是: 如果没有选择ListView的电影场次(也就是时间),选择赠票和学生票是没有意义的甚至会引发学生票实时计算时的异常,所以我们要判断  if (this.treeVi

  • JavaWeb搭建网上图书商城毕业设计

    以前一直接触.net相关的web开发,现在猛然使用javaWeb还是很不习惯,就连搭个框架也是第一次. 一.谈谈项目架构 一开始接触.net相关的开发所以对于.net相关的开发还是比较熟悉的,但我在学校学的java方向的开发,而我打算把这两种平台结合起来,使用java做后台也就是服务提供者,将所有业务逻辑在java平台完成并使用我比较熟悉的.net做Web端的开发.这样一来安卓app,web端就都有了.客户端统一通过分布式框架调用服务.找了很久最终选择了Hprose,这一轻量级.跨语言.跨平台.

  • C#影院售票系统毕业设计(4)

    回顾:上一篇文章总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息. 分析:退出程序时将已售出票集合中的对象循环写入到文本文件中,读取时循环读入并加入到已售出票集合中,下面看具体实现 public void Save() { //保存的文件 FileStream fs = new FileStream("soldTickets.txt", FileMode.OpenOrCreate); Stream

  • C#影院售票系统毕业设计(1)

    C#学习经历从基本语法结构到窗体再到面向对象终于走完了.NET初级程序员的道路,用了大概一天半的时间做完这个练手项目<影院售票系统>,先上效果截图一张 抽出时间做些这个对目前的我来说算不小的项目. 用到的知识点有:面向对象思想.TreeView.XML读取.File文件流.泛型集合,这里面对我来说难度最大的是面向对象与泛型集合的结合,看来学习一门编程语言的难点还是在设计思想上. 再来介绍一下项目需求:在影片列表中选择某个时段的一场电影,单击座位选择一个种类的电影票,并创建电影,计算价格并打印影

随机推荐