PHP 中的对象

WBOY
发布: 2024-08-29 12:36:24
原创
880 人浏览过

对象是现实世界的实体。对象是从面向对象编程(如 PHP)中的类定义的。当定义了一个类时,我们可以从该类中创建许多对象。定义了Example Class Car,那么Mercedes、BMW、Skoda都是Class Car的对象。类是对象的蓝图。类包含变量和函数。这些数据变量称为属性,数据函数称为数据方法。

广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

对象的定义是这样的,对象是类的实例。我们可以使用 new 关键字创建该类的实例。我们可以创建该类的多个实例。这些实例现在可以访问类函数、类成员。

如何创建对象?

创建对象与实例化类相同。该实例是使用 new 关键字创建的。这个过程称为实例化。 由于对象是类的实例,并且可以使用 new 关键字创建,让我们看看如何创建这些实例。

语法:

objectname = new Classname();
登录后复制

示例:

$parrot = new Bird();
$pigeon = new Bird();
$woodpecker = new Bird();
登录后复制

上面是 Bird 类的三个不同对象。使用这些对象,我们可以访问 Bird 类的属性和函数。

什么是新关键字?

当我们实例化一个类时,我们实际上是在创建该类的一个对象。要创建对象,必须使用 new 关键字。在类中使用构造函数时,当使用 new 关键字初始化对象时,会自动调用构造函数。

对象的属性

属性是在类中定义的变量。然后这些变量由类的方法和对象使用。这些变量可以是公共的、受保护的或私有的。默认情况下,使用 public。变量的值可能包含也可能不包含默认值,这意味着该变量可以使用值初始化,也可以不使用值初始化。

变量名称区分大小写,这意味着 $name 与 $Name 不同。  有一个命名约定,如果变量包含多个单词,则第二个单词将以大写字母开头,如 $firstName、$lastName 等。

让我们看下面的程序来了解其属性。

class Birds {
public $birdsFly = 'sky';
public $birdsSound = 'vocal';
public $birdsBuildNests = 'trees';
}
登录后复制

下面的程序解释了如何声明一个 Bird 类及其属性,比如鸟飞时会发出声音并筑巢,以及一个关于鸟所做的事情的方法。

代码:

<?php
//example to access properties of a class
class Birds {
// properties
public $birdsFly = 'sky';
public $birdsSound = 'vocal';
public $birdsBuildNests = 'trees';
//methods
public function birdDoes()
{
echo 'Bird';
}
}
//object of class is declared
$obj = new Birds();
//properties of class Bird are accessed using object
echo '<br>  Bird Flies =  '.$obj->birdsFly;
echo '<br>  Bird Makes Sound = '.$obj->birdsSound;
echo '<br>  Bird Build Nests = '.$obj->birdsBuildNests;
?>
登录后复制

输出:

PHP 中的对象

PHP 中对象的方法

作为类的属性,我们可以在类中定义成员函数。然后可以从对象调用这些函数。这些函数被称为类的方法。这些功能可以是公共的、私有的或受保护的。默认是公开的。另外,在声明函数时,我们将其声明为

语法:

public function functionaname() {
//statements
}
登录后复制

示例:

class Bird {
public function makesSound() {
// statements
}
public function looksForFood() {
// statements
}
}
$obj = new Bird;
echo $bird->makesSound();
echo $bird->looksForFood();
登录后复制

代码:

<?php
//example to access methods of a class
class Birds {
// properties
public $birdsFly;
public $birdsBuildNests;
//method 1  - set Method1
public function set_birdFlies($input) {
$this->birdsFly = $input ;
}
//method 1 - get Method1
public function get_birdFlies() {
return $this->birdsFly;
}
//method 2  - set Method2
public function set_BirdBuildsNest($input) {
$this->birdsBuildNests = $input ;
}
//method 2 - get Method2
public function get_BirdBuildsNest() {
return $this->birdsBuildNests;
}
}
//object of class is declared
$obj = new Birds();
$obj->set_birdFlies('Fly');
echo '<br>  Bird Flies =  '.$obj->get_birdFlies();
$obj->set_BirdBuildsNest('Trees');
echo '<br>  Bird Builds Nest =  '.$obj->get_BirdBuildsNest();?>
登录后复制

输出:

PHP 中的对象

对象和构造函数

构造函数是一种特殊的方法。当创建新对象时,会自动调用此方法。无需从对象显式调用该方法。

语法:

__construct();// double underscores are used.
登录后复制

假设有两个类,一个是基类,另一个是派生类。如果派生类没有自己的构造函数并且想要继承基类构造函数,我们需要使用以下语法声明它:

语法:

parent::__construct();
登录后复制

代码:

<?php
//example to use constructor in a class
class Birds {
// properties
public $makesSound;
// the constructor is called when object is created
public function __construct($input) {
$this->makesSound = $input;
echo 'Bird makes Sound: '.$this->makesSound;
}
}
//object of class is declared
$obj = new Birds('Vocal');
?>
登录后复制

输出:

PHP 中的对象

具有继承性的构造函数和对象

在下面的程序中,我们将看到对象如何在内部通过创建对象来调用基类构造函数。由于使用了继承,我们可以使用parent:: __construct()来调用基类构造函数。

代码:

<?php
//example to use constructor and object of a class
class Birds {
// properties
public $bird_flies='sky';
// the constructor is called when object is created
public function __construct() {
echo 'In the Base Class Constructor';
}
}
class EagleBird extends Birds {
function __construct() {
parent::__construct();
}
public function BirdDoes() {
return $this->bird_flies;
}
}
//object of class is declared
$obj = new EagleBird();
echo '<br> Method : ' .$obj->BirdDoes();
?>
登录后复制

输出:

PHP 中的对象

结论

本文解释了面向对象编程中什么是对象、如何创建对象、其语法、如何在给定程序中使用对象。另外,如何在 PHP 中声明和使用对象的属性和方法,如何在 PHP 中使用构造函数。本文提供的程序可能有助于解决您的疑问并很好地理解这个概念。

以上是PHP 中的对象的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板