![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 78
mvpzx
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
PHP:字符串操作
字符串操作1 字符串整理可以使用trim()函数去除字符串开始位置和结束位置的空格,并把结果字符串返回。默认情况下,去除:\n 、 \r 、\t、\xOb、\0和空格。也可以传入第二个参数提供要过滤的特殊字符。 ltrim()只从字符串开始处去除,rtrim()只从字符串结束处去除。2 使用HTML标记格式化nl2br()函数将会把字符串中的换行符替换为<br>标记。3 转义字符串以便存储:add原创 2017-03-28 17:33:27 · 341 阅读 · 0 评论 -
PHP:代码复用trait
PHP实现了代码复用的一个方法,称为trait。通常情况下,当我们需要在多个不同的类使用同一个方法的时候,继承是不错的解决方法。但是,在PHP中,每个类只能从单一的父类继承,这样的话,就不能设计一个比较通用的父类了。解决办法:可以使用trait,trait允许我们在不适用继承的情况下为一个类增加一个功能。示例程序:trait tDebug { public function dump原创 2017-03-13 16:28:31 · 739 阅读 · 0 评论 -
PHP:抽象类与接口
一、抽象类抽象类是父类的模板。一个抽象类定义了接口:这个基类的继承类如何被使用,然后子类再真正实现这些接口。抽象类就是被用来扩展的,然后才可以创建这些派生类的实例,换而言之,抽象类就是被用来继承的。在子类中实现继承来的抽象方法时,其可见性必需高于或等于抽象方法定义的可见性。同时,方法的实现版本要和抽象方法的参数数目一样(函数签名一致)。如果一个类哪怕只有一个抽象方法,那么这个类本身就应原创 2017-03-13 09:14:55 · 235 阅读 · 0 评论 -
PHP:使用范围解析操作符
面向对象编程中会使用到一些它自己的操作符,如->,这个符号用来在对象中访问它自己的成员。另外一个是范围解析操作符:两个冒号连在一起(::)。这个符号用于在类中(而不是对象中)访问成员。使用方式如下:ClassName::methodName();ClassName::propertyName;这种结构在两个地方可能被用到:1.在使用类的时候,父类和子类具有相同的属性和方法时,利用它可原创 2017-03-07 18:28:59 · 1095 阅读 · 0 评论 -
PHP:面向对象编程基础知识
面向对象编程中有两个重要术语:”类“和”对象“。类是对某个事物的概括定义,可以看作是一个蓝图。对象则是对某个事物的具体实现,可以看作是依照类建立起来的实例。我们首先定义类,然后根据需要实现它们为对象。面向对象编程的原则之一是”模块化“:把应用程序拆分为明确的子部分。Web站点需要做很多事情:与数据库交互、处理表单、发送电子邮件、生成HTML代码等等,这些都可以作为一个模块,一个类。与”模块原创 2017-03-04 16:35:40 · 366 阅读 · 0 评论 -
PHP:水平展示结果
使用HTML表格来实现结果的水平布局。示例程序: HTML表格水平展示数据<?php //每行展示的条目数 $items = 4; //打印标题 echo "水平展示数据"; //连接数据库 $dbc = mysqli_connect('localhost', 'root', '', 'dnf_db'); //获取数据 $q = "SELECT u原创 2017-03-04 15:57:48 · 244 阅读 · 0 评论 -
PHP:创建存储函数
存储函数是一个比较大的概念:存储程序的一部分(另外一部分是存储过程)。存储程序可以让我们把一系列代码保存到MySQL服务器内,然后根据需要调用代码。存储程序是可以拥有自己的变量的(为局部变量)。声明变量使用DECLARE语句:DECLARE var_name var_type其类型应对应于MySQL的数据类型:DECLARE var1 INTDECLARE var2 VARCHAR(原创 2017-03-04 15:07:22 · 295 阅读 · 0 评论 -
PHP:在数据库中保存会话
在默认情况下,PHP会把全部会话数据保存在服务器上的文本文件里。这些文件通常使保存在系统的临时目录里(比如UNIX和Mac OS X系统中就是/tmp目录),其文件名匹配会话ID。然而,PHP还提供一种机制可以让我们以其他方式来管理会话,比如在数据库中存储这些会话数据。这样做的原因是提高系统的安全性。在共享主机服务器上,如果没有进行特别的设置,所有网站站点都会使用同一个临时目录,这意味着数十个原创 2017-03-03 14:25:34 · 819 阅读 · 0 评论 -
PHP:使用printf()和sprintf()
一、函数printf()不仅可以显示文本,还可以设置输出的格式。该函数的定义如下:printf(string format, [mixed arguments]);格式参数format是由直接文本变量和特殊格式参数组成的字符串。特殊格式由百分号(%)开始,其后可以有多种组合,如下所示: 1.符号说明符(+/-)可以强制使正数前面加一个符号 2.填充说明符表示用于右填充的字符原创 2017-03-02 15:03:53 · 698 阅读 · 0 评论 -
PHP:使用静态变量
在使用任何可能会被多次调用的函数时,我们都应考虑使用静态变量。静态变量让函数在多次被调用时记住变量的值,而这些变量并不是全局变量。上一篇笔记说到了多维数组的排序需首先自定义排序函数。现在提出一个新的需求:统计递归的次数。那么我们就要使用静态变量了。示例:使用静态变量<?php //创建数组 $students = array( 256 => array('name' =>原创 2017-02-27 17:11:57 · 1348 阅读 · 0 评论 -
PHP:多维数组排序
在PHP中,利用sort()、ksort()对多个数组进行排序很简单,使用它们,可以对一维数组进行关键字排序、按值排序、逆排序等。但是这些函数不能方便地用于多维数组。假设有一个数组定义如下:$students = array( 256 => array('name' => 'John', 'grade' => 98), 23 => array('name' => 'Tom', 'gra原创 2017-02-27 15:50:45 · 975 阅读 · 0 评论 -
PHP:设计模式之单例模式
单例模式(Singleton pattern)是一种创建型模式,它会限制应用程序,使其只能创建某一特定类类型的一个单一的实例。举个例子,一个Web站点将会需要一个数据库连接对象,但是应该有且仅有一个(把所有的数据库连接都放在这个连接上),我们可以使用单例模式来实现这种限制。我们可以使用一个静态属性来保证对一个特定的类来说只存在一个的单一实例。class SomeClass { stat原创 2017-03-13 17:05:58 · 542 阅读 · 0 评论 -
PHP:设计模式之工厂模式
工厂模式是一种创建型模式,它可能会被用于创建多种不同类型的类的多个对象。工厂模式在以下的场景中比较适用:1、当程序编写的时候,并不能确定在生成对象的时候其确切的对象类型,只有当程序运行的才会确定。在动态的应用程序中,这种情况非常常见。2、举个例子,现在有一个抽象的基类,它的几个不同的派生子类需要立即被创建。这种设计结构是很适合适用工厂模式的,因为我们一旦创建了一个对象,对这个对象的使用就会原创 2017-03-14 11:11:58 · 311 阅读 · 0 评论 -
PHP:使用数组
使用数组存储在数组中的值称为数组元素。每个数组元素有一个相关的索引(也称为关键字),它可以用来访问元素。PHP允许使用数字或字符串作为数组的索引,这样可以使得索引更具意义和有用。1 数字索引数组1.1 数字索引数组的初始化举个例子: $a = array(1, 2, 3); 如果需要将按升序排列的数字保存在一个数组中,可以使用range()函数自动创建这个函数,例: $b = range(1,原创 2017-03-28 16:26:09 · 278 阅读 · 0 评论 -
PHP:文件处理
文件处理将数据写入一个文件,有3个步骤: 1. 打开文件 2. 将数据写入这个文件 3. 关闭这个文件 同样,从一个文件中读取数据,也有3个步骤 1. 打开文件。如果文件打不开,就应正确地退出 2. 从文件中读取数据 3. 关闭这个文件1. 打开文件要在PHP中打开一个文件,可以使用fopen()函数。当打开文件的时候还要指定打开模式。1.1 选择文件模式 模式 模式名称原创 2017-03-28 12:19:15 · 419 阅读 · 0 评论 -
PHP:PHP基础语法中的盲点
1.引用引用操作符可以在关联赋值中使用。通常,将一个变量的值赋给另一个变量的时候,先产生原变量的一个副本,然后再将它们保存在内存的其他地方。比如: $a = 5; $b = $a; 这两行代码首先会产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会改变: $a = 7;//$b仍旧是5 可以使用引用操作符来避免这样的副本。比如: $a =原创 2017-03-27 18:28:49 · 334 阅读 · 0 评论 -
PHP:OOP编程示例-CMS系统
接下来我会用OOP实现一个CMS网站(就简单做一下文章的管理展示功能,其他功能就不做了,也许这不能称为CMS系统)。网站的文件组织:classes文件夹用来存放相关的类,includes文件夹存放将被包含的页面,views文件夹存放用于网页展示的页面,css就是样式表文件所在地了。1、创建数据库CREATE DATABASE cms CHARACTER SET UTF8;原创 2017-03-21 21:03:06 · 2018 阅读 · 0 评论 -
PHP:自动加载类
使用OOP,我们有时必须在所需的某种类型的对象的脚本中包含进它的类文件。例如:require('Shape.php');如果只需要包含一个类文件,那是不麻烦,但是如果程序中使用了很多类呢,包含这些类文件就太麻烦了。这时候我们就可以使用一种方法了。首先,定义一个知道如何为我们包含类文件的函数:function class_loader($class) { require('cl原创 2017-03-21 20:17:14 · 292 阅读 · 0 评论 -
PHP:迭代器
迭代器(iterator)是一种设计模式,它可以使所有复杂数据结构的组件都可以使用循环来访问。如我们所知,foreach循环可以对数组进行迭代,while循环可以用来读取查询结果,并且php中有对文件夹及文件内容进行迭代的函数。在以上的几种情况中,底层的数据结构是不一样的,但是对他们进行迭代的前提是相同的。迭代器,就是一种解决方案:无论迭代的是什么数据结构,我们都可以使用通用的代码(通常是原创 2017-03-21 20:06:33 · 418 阅读 · 0 评论 -
PHP:使用PDO与数据库进行交互
PHP数据对象(PDO)是PHP与数据库进行交互的一种替代方式。如果我们在项目中使用了PDO,那么更换数据库,只需要更改一行代码。要确定安装的PHP版本支持哪些数据库,可调用PDO类的getAvailableDrivers()方法。print_r(PDO::getAvailableDrivers());1、连接数据库所有对PDO的自定义都发生在与数据库建立连接的过程中,通过创建原创 2017-03-17 16:09:27 · 733 阅读 · 0 评论 -
PHP:捕获异常
面向过程的代码生成“错误”,面向对象的代码生成“异常”。在面向过程中使用条件判断来处理错误,在面向对象中则使用try和catch语句来处理异常。在try块中,一旦有异常抛出,其后的代码都不会执行。反之,如果没有抛出异常,catch块中的代码永远不执行。接下来以向文件写入数据作示例:class WriteToFile { private $_fp = NULL; function __原创 2017-03-17 14:30:07 · 853 阅读 · 0 评论 -
PHP:设计模式之策略模式
策略模式是一种行为类模式。行为类模式用来说明一个应用是如何运作的。作为对比,工厂模式会改变对象的类型,而策略模式会立即改变一个算法。当我们使用的类比较简单,但是又不相互关联,只是在特定行为上有差异的时候,策略模式就非常有用。举个例子,做一个字符串的过滤系统。不同的过滤系统需要包括:1、删除HTML多余的空格2、去除脏话3、捕捉通过联系表单或者类似的地方发布垃圾信息(spam)的字符原创 2017-03-14 22:48:43 · 345 阅读 · 1 评论 -
PHP:设计模式之组合模式
单例模式和工厂模式都属于创建型模式:它们被用来产生一个或多个对象。另外一种设计模式的分类叫做结构型模式。这些模式比较适合用于当需要使用一个非传统的类结构或者一个现有的类结构的修改版本的时候。为了进一步介绍结构性模式,我们来看一看组合模式(Composite pattern)。一种表明可能要使用组合模式的迹象是,我们正在处理的是一个树状的数据结构。要实现组合模式,通常会从一个抽象的基类开始。原创 2017-03-14 15:01:30 · 311 阅读 · 0 评论 -
PHP:PHP与XML
XML(扩展标记语言)是计算机业界中最重要的技术之一。它应用广泛,从计算机之间数据共享,到为一个独立的应用提供数据存储。XML提供的格式不仅能够保存信息,还能保存关于信息的信息(称为:“元信息”)。原创 2017-03-27 16:25:36 · 1635 阅读 · 0 评论