×

php面向对象全攻略(十四)

php面向对象全攻略(十四)(php面向对象编程)

admin admin 发表于2023-03-22 03:46:10 浏览41 评论0

抢沙发发表评论

本文目录一览:

php面向对象全攻略 (三)特殊的引用“$this”的使用

7.特殊的引用“$this”的使用

现在我们知道了如何访问对象中的成员,是通过“对象-成员”的方式访问的,这是在对

象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对

象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所

有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP

里面给我提供了

一个本对象的引用$this,每个对象里面都有一个对象的引用$this

来代表这个对象,完成对象

内部成员的调用,this

的本意就是“这个”的意思,上面的实例里面,我们实例化三个实例

对象$P1、$P2、$P3,这三个对象里面各自存在一个$this

分别代表对象$p1、$p2、$p3。

通过上图我们可以看到,$this

就是对象内部代表这个对象的引用,在对象内部和调用本

对象的成员和对象外部调用对象的成员所使用的方式是一样的。

$this-属性$this-name;

$this-age;

$this-sex;

$this-方法$this-say();

$this-run();

修改一下上面的实例,让每个人都说出自己的名字,性别和年龄:

代码片段

复制代码

代码如下:

?php

class

Person{

//下面是人的成员属性

var

$name;

//人的名字

var

$sex;

//人的性别

var

$age;

//人的年龄

//下面是人的成员方法

function

say(){//这个人可以说话的方法

echo

"我的名字叫:".$this-name."

性别:".$this-sex."

我的年龄是:".$this-age."br";

}

function

run(){

//这个人可以走路的方法

echo

"这个人在走路";

}

}

$p1=new

Person();

//创建实例对象$p1

$p2=new

Person();

//创建实例对象$p2

$p3=new

Person();

//创建实例对象$p3

//下面三行是给$p1对象属性赋值

$p1-name="张三";

$p1-sex="男";

$p1-age=20;

//下面访问$p1对象中的说话方法

$p1-say();

//下面三行是给$p2对象属性赋值

$p2-name="李四";

$p2-sex="女";

$p2-age=30;

//下面访问$p2对象中的说话方法

$p2-say();

//下面三行是给$p3对象属性赋值

$p3-name="王五";

$p3-sex="男";

$p3-age=40;

//下面访问$p3对象中的说话方法

$p3-say();

?

输出结果

我的名字叫:张三性别:男我的年龄是:20

我的名字叫:李四性别:女我的年龄是:30

我的名字叫:王五性别:男我的年龄是:40

分析一下这个方法:

代码片段

function

say(){

//这个人可以说话的方法

echo

"我的名字叫:".$this-name."

性别:".$this-sex."

我的年龄是:".$this-age."br";

}

在$p1、$p2

和$p3

这三个对象中都有say()这个方法,$this

分别代表这三个对象,调用相应的属性,打印出属性的值,这就是在对象内部访问对象属性的方式,如果相在say()这个方

法里调用run()这个方法也是可以的,在say()这个方法中使用$this-run()的方式来完成调用。

如何学习php

PHP相对于其他语言,比较简单,相对好上手,比较适合零基础的人学习,自学的话对自己的自律性要求很高,我之前就在领元学校学习的,所以如果可以的话我建议去学习班里学习,后期边开发边学习,问题和错误一个个解决过去,不断的积累经验。-php面向对象全攻略(十四)

php如何实现面向对象

通过引入类这个概念 然后用方法来实现功能

?php

header('Content-type:text/html;charset=utf-8');

//面向对象

class Dog{

//属性

private $name = '旺财';

private $age = 2;

private $voice = '咕咕。。';

//方法

public function runToMe(){

echo $this-age,'岁的',$this-name,'正在向我跑来,尾巴还一摇一摇的。br/';

}

public function drinkWater(){

echo $this-name,'正在喝水,还不时的发出“',$this-voice,'”的声音。';

}

}

//实例化

$dog = new Dog();

//调用方法

$dog-runToMe();

$dog-drinkWater();

//输出:2岁的旺财正在向我跑来,尾巴还一摇一摇的。旺财正在喝水,还不时的发出///“咕咕。。”的声音。

?

php面向对象都包括什么东西啊????我学了好久的面向对象了都搞不清楚

与html无关

面向对象简单的讲就中把常用的代码封闭为class,方便使用。

以数据库连接为例:

平时你应是这样做的

?php

$conn = @mysql_connect('192.168.1.180', 'admin', '123456') or die('连接失败');

mysql_select_db('ecshop', $conn);

$query = mysql_query("SELECT * FROM ecs_admin_user");

while ($row = mysql_fetch_assoc($query)) {

echo $row['user_name'];

}

//以上代码属面向过程,现在可以用面向对象方式实现

//以下是面向对象实现

class DB {

private $conn;

public $dbhost = '127.0.0.1'; //对象属性,默认主机地址

public $dbuser = 'root'; //对象属性,默认数据库用户名

public $dbpass = ''; //对象属性,默认密码

public $dbname = ''; //对象属性,数据库名

public function __construct($dbhost = '', $dbuser = '', $dbpass = '', $dbname = '') {

$this-dbhost = !empty($dbhost) ? $dbhost : $this-dbhost;

$this-dbuser = !empty($dbuser) ? $dbuser : $this-dbuser;

$this-dbpass = !empty($dbpass) ? $dbpass : $this-dbpass;

$this-dbname = !empty($dbname) ? $dbname : $this-dbname;

}

//对象方法,连接

public function connect() {

$this-conn = @mysql_connect($this-dbhost, $this-dbuser, $this-dbpass) or die('连接失败');

mysql_select_db($this-dbname, $this-conn);

}

//对象方法,询查方法,查询并返回数组结果

public function query($sql) {

$query = mysql_query($sql);

$data = array();

while ($row = mysql_fetch_assoc($query)) {

$data[] = $row;

}

return $data;

}

//对象方法,关闭连接

public function close() {

mysql_close($this-conn);

}

}

//这就中一个简单的数据连接和查询类,你可以保存到一php文件,以后引入它就用可以用了,下面实例化

//实例1

$db = new DB('192.168.1.180', 'admin', '123456', 'ecshop');

$db-connect();

$result = $db-query("SELECT * FROM ecs_admin_user");

foreach ($result as $rs) {

echo $rs['user_name'], 'br';

}

//实例2

$db = new DB();

$db-dbhost = '192.168.1.180';

$db-dbuser = 'admin';

$db-dbpass = '123456';

$db-dbname = 'ecshop';

$result = $db-query("SELECT * FROM ecs_admin_user");

foreach ($result as $rs) {

echo $rs['user_name'], 'br';

}

//实例3

$db = new DB('192.168.1.180', 'admin', '123456', 'ecshop');

$db-connect();

$result = $db-query("SELECT * FROM ecs_admin_user");

foreach ($result as $rs) {

echo $rs['user_name'], 'br';

}

$db-close();

//切换数据连接

$db-dbname = 'wordpress';

$db-connect();

$result = $db-query("SELECT * FROM wp_users");

foreach ($result as $rs) {

echo $rs['user_login'], 'br';

}

?

能讲讲PHP面向对象的编程吗

在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。

在现实世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。

对象的主要三个特性:

对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。

对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。

对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

比如 Animal(动物) 是一个抽象类,我们可以具体到一只狗跟一只羊,而狗跟羊就是具体的对象,他们有颜色属性,可以写,可以跑等行为状态。

大家是如何理解PHP编程中的“面向对象”呢?

你的理解很形象了, PHP的面向对象功能很弱的, 并不是完全的面向对象的。 你可以理解PHP中的类是带属性和方法的结构。 类定义只是定义,类实例才是真正的实现。