本文目录一览:
- 1、php面向对象全攻略 (三)特殊的引用“$this”的使用
- 2、如何学习php
- 3、php如何实现面向对象
- 4、php面向对象都包括什么东西啊????我学了好久的面向对象了都搞不清楚
- 5、能讲讲PHP面向对象的编程吗
- 6、大家是如何理解PHP编程中的“面向对象”呢?
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中的类是带属性和方法的结构。 类定义只是定义,类实例才是真正的实现。