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


Posted in PHP onFebruary 21, 2012

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()语句包含并运行指定文件;

PHP 相关文章推荐
数据库相关问题
Oct 09 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
PHP安全防范技巧分享
Nov 03 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 #PHP
修改PHP的memory_limit限制的方法分享
Feb 21 #PHP
php中取得文件的后缀名?
Feb 20 #PHP
ThinkPHP写第一个模块应用
Feb 20 #PHP
for循环连续求和、九九乘法表代码
Feb 20 #PHP
phpmail类发送邮件函数代码
Feb 20 #PHP
国外PHP程序员的13个好习惯小结
Feb 20 #PHP
You might like
用PHP生成html分页列表的代码
2007/03/18 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
Django的session中对于用户验证的支持
2015/07/23 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
pyshp创建shp点文件的方法
2018/12/31 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
英国二手物品交易网站:Preloved
2017/10/06 全球购物
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
少先队学雷锋活动月总结
2014/03/09 职场文书
重阳节活动总结
2014/08/27 职场文书
企业授权委托书范本
2014/09/22 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
遗嘱继承权公证书
2015/01/26 职场文书