PHP中类和对象
面向对象中的基本概念
类和对象
对象: 万物皆对象;
类: 任何对象,都可以人为“规定”为某种类型(类别);
class Person{
var $name ;
var $age;
var $edu;
}
我:
姓名:罗XX,
年龄40,
学历:大学;
王亮:
姓名:王亮
年龄:20;
学历:大学;
class Teacher{
var $name ;
var $age;
var $edu;
var $major; //专业
}
举例:
//定义一个"人类"(Person类)
class Person{
var $name; //一个特征,其实就是"变量"
var $age; //一个特征,其实就是"变量"
var $edu; //一个特征,其实就是"变量"
}
//创建一个新的Person类的对象,并"放入"变量$obj1中(其实就是赋值)
$obj1 = new Person();
$obj1->name = '张三'; //符号"->"就是表示指代对象中的某个"特征",这里是给该特征赋值;
$obj1->age = 18; //"->"相当于js中的"."符号,比如d1.style.color = "red";
$obj1->edu = '大学';
echo "<pre>";
var_dump($obj1);
echo "/pre";
显示结果为:
object(Person)#1 (3) {
["name"]=>
string(6) "张三"
["age"]=>
int(18)
["edu"]=>
string(6) "大学"
}
又创建了一个对象:
//又创建了一个对象:
$obj2 = new Person();
$obj2->name = "李四";
$obj2->age = 22;
$obj2->edu = "高中";
echo "<pre>";
var_dump($obj2);
echo "</pre>";
然后再显示为:
object(Person)#1 (3) {
["name"]=>
string(6) "张三"
["age"]=>
int(18)
["edu"]=>
string(6) "大学"
}
object(Person)#2 (3) {
["name"]=>
string(6) "李四"
["age"]=>
int(22)
["edu"]=>
string(6) "高中"
}
可见:
类是描述一类事物的一个总称,是具有相同特征特性的该类事物的一个通用名字(称呼);
对象是一个明确的具体的”物体”,是某个类中的一个“实物”(相对来说,类就是一种抽象的泛称)。对象离不开类,或者说,对象一定隶属于某个类——有类才有对象,先有类再有对象。
属性和方法
原来的做法(面向过程):
<?php
$name = "小花";
$age = 18;
$edu = "大学";
function wash($n, $a, $e){
echo "<br />{$a}岁的{$e}学历的{$n}在勤快地洗衣服";
}
function meal($n, $a, $e){
echo "<br />{$a}岁的{$e}学历的{$n}在快乐地做饭";
}
wash($name, $age, $edu);
meal($name, $age, $edu);
?>
现在的做法(面向对象):
<?php
class MyDreamGirl{
var $name = "小花"; //此时他叫做"属性"了(原来是变量的)
var $age = 18;
var $edu = "大学";
//此时,他叫做"方法"了(原来是函数);
function wash(){
echo "<br />{$this->age}岁的{$this->edu}学历的{$this->name}在勤快地洗衣服";
}
function meal(){
echo "<br />{$this->age}岁的{$this->edu}学历的{$this->name}在快乐地做饭";
}
}
$obj1 = new MyDreamGirl();
$obj1->wash();
$obj1->meal();
?>
可见:
属性:就是原来的“变量”,只是现在它“隶属于”一个类了,即写在一个类中,就称为属性;
方法:就是原来的“函数”,只是现在它“隶属于”一个类了,即写在一个类中,就称为方法;
注意:属性和方法,已经不能“自由使用”了,而是都要通过这个类或这个类的对象去使用。
使用属性,就把它当做一个“变量”去使用就好了,只是需要该形式:对象->属性名;
使用方法,就把它当做一个“函数”去使用就好了,只是需要该形式:对象->函数名(实参列表…)
<?php
class MyDreamGirl{
function GetPingfanghe($x, $y){
$result = $x*$x + $y*$y;
return $result;
}
}
$obj2 = new MyDreamGirl();
$v1 = $obj2->GetPingfanghe(3,4);
echo "<br /><br />v1 = $v1";
?>
结果为:
v1 = 25
本文来自博客园,作者:NoCirc1e,转载请注明原文链接:https://www.cnblogs.com/NoCirc1e/p/16275610.html