好文档 - 专业文书写作范文服务资料分享网站

PHP从入门到精通(免费)

天下 分享 时间: 加入收藏 我要投稿 点赞

5.用正则表达式进行字符串分割

Array preg_split(string $正则表达式,string 字符串,[int limit],[int flags]) 以正则表达式搜出来的东西进行分割,返回数组。

Flags有三个选择:PREG_SPLIT_ON_EMPTY:只返回非空的成分

PREG_SPLIT_DELIM_CAPTURE:定界符模式中的括号表达式也会被捕捉并返回 PREG_SPLIT_OFFSET_CAPTURE:返回的同时加每个的偏移量

$str = 'PHP hypertext language programming ';

$arr1 = preg_split(\, $str,-1,PREG_SPLIT_NO_EMPTY);

$arr2 = preg_split(\, $str,-1,PREG_SPLIT_DELIM_CAPTURE); $arr3 = preg_split(\, $str,-1,PREG_SPLIT_OFFSET_CAPTURE); print_r($arr1); echo \; print_r($arr2); echo \; print_r($arr3); echo \; ?>

效果如下:

面向对象的PHP 1.类定义

class className {

//类成员列表

//类方法列表function }

定义类的属性,首先要定义它的访问权限public/private/protect

2.在执行对象时自动定义一个$this的特殊变量,该变量表示对对象本身的引用,可以通过 $this ->的方式来引用对象的所有属性和方法。 3.构造函数

function __construct() { }

析构函数时构造函数的相反,在对象引用结束时,自动会调用析构函数。

4.类的继承:

类的继承关键字为:extends

在PHP中,使用parent表示父类,使用self表示当前类

使用parent 和self进行属性和方法的调用时,需要使用范围解析操作符::: 5.子类和父类的属性和方法调用: 方法的调用:

$this->方法名();如果子类中有该方法则调用的是子类中的方法,若没有则是调用父类中的。 parent::则始终调用的是父类中的方法。 变量的调用:

$this->变量名;如果子类中有该变量则调用的是子类中的,若没有则调用的是父类中的 注意:子类无法访问父类的私有属性,那为什么访问却没有出错呢?其实是在子类中新建了一个变量而已,因为PHP是弱定义的语言。

class Animal { }

class cat extends Animal {

public $name;

public $color;

function __construct($selfname,$color,$parentname,$age) {

$this->name = $selfname;

$this->color =$color; $this->age=$age;

public $name = \; public $age =18;

public function cry() {

echo \; echo \; }

}

public function cry() {

echo \; echo \;

}

public function printout() {

self::cry();

parent::cry();

} }

$cat = new cat(\,\,\,19); $cat->printout();

echo \$cat->name\;

echo \;

echo \$cat->age\; echo \;

echo \$cat->color\; echo \; ?> 效果如下:

6.类的常量

const 常量名 = value;

可以在类中通过self::常量名来调用。

类的常量属于类本身,不能被继承和访问。 7.访问权限

public:可以被继承,也可以通过实例访问 protect:可以被继承,不能通过实例访问 private:不能被继承,也不能通过实例访问 8.静态属性和方法

静态属性和类的常量一样,只属于类本身,通过static来定义。 方法也是一样的。

9.字符串转换函数:__toString()函数

这个函数和构造函数一样,都是系统内置的函数。

如果我们直接用print 或echo 来打印对象实例名(注意是对象实例名),就会自动调用这个函数。

class Animal {

public $name = \; public $age =18;

function __toString() {

echo \; echo \;

return $this->name; } }

$animal = new Animal(); echo $animal; ?>

效果如下:

10.内置克隆方法__clone()

当我们进行对对象实例进行克隆,克隆出一个新的对象实例出来时,就会自动调用类中的这个克隆函数。

class Animal {

public $name = \; public $age =18;

function __clone() {

echo \; echo \; } }

$animal = new Animal();

$coloneNewAnimal = clone $animal;

echo \. $coloneNewAnimal->name; echo \;

echo \. $coloneNewAnimal->age; echo \; ?>

效果如下:

11.__get()和__set() 我们一般情况下,会把类中的属性设置为private,然后通过get和set函数来取得和设置属性的值,在Java中,需要对每一个属性写get和set的值,这很麻烦。 在PHP中,只要写一次,全部通用。

//__get()方法用来获取私有属性 function__get($property_name) {

if(isset($this->$property_name)) {

return($this->$property_name); }else {

return(NULL); } }

//__set()方法用来设置私有属性

function__set($property_name,$value) {

$this->$property_name=$value; }

用法如下:

class Person {

//下面是人的成员属性,都是封装的私有成员 private $name; //人的名子 private $sex; //人的性别 private $age; //人的年龄 //__get()方法用来获取私有属性 function __get($property_name) {

echo \在直接获取私有属性值的时候,自动调用了这个__get()方法
\; if(isset($this->$property_name)) {

return($this->$property_name); } else {

return(NULL); } }

//__set()方法用来设置私有属性

function __set($property_name, $value) {

echo \在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值
\; $this->$property_name = $value; } }

$p1=new Person();

//直接为私有属性赋值的操作,会自动调用__set()方法进行赋值 $p1->name=\张三\; $p1->sex=\男\; $p1->age=20;

//直接获取私有属性的值,会自动调用__get()方法,返回成员属性的值 echo \姓名:\.$p1->name.\; echo \性别:\.$p1->sex.\; echo \年龄:\.$p1->age.\; ?>

效果如下:

PHP从入门到精通(免费)

5.用正则表达式进行字符串分割Arraypreg_split(string$正则表达式,string字符串,[intlimit],[intflags])以正则表达式搜出来的东西进行分割,返回数组。Flags有三个选择:PREG_SPLIT_ON_EMPTY:只返回非空的成分PREG_SPLIT_DELIM_CAPTU
推荐度:
点击下载文档文档为doc格式
27we59ju8j4n25q6n2e0
领取福利

微信扫码领取福利

微信扫码分享