我自己使用以下代码,它们给出的结果相同。那么为什么我们使用类而不是普通函数,以及类和函数之间的区别是什么?
<?php
class MyClass{
public $property = "This is My Class Property";
public function getProperty(){
echo $this->property."<br />";
}
}
$obj=new MyClass();
echo $obj->getProperty();
?>
<?php
function getProp(){
$prop="This is My Class Property";
echo $prop;
}
getProp();
?>
PHP语言参考详细说明了什么是函数和类:http : //www.php.net/manual/zh/langref.php
它还说明了PHP的大多数其他功能。如果想学习PHP,那是最好的起点。
功能
该函数是一组语句(代码行)。
例如以下语句:
$name = 'mary';
$gender = 'girl';
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
可以分组为一个函数,以便可以重用:
getSentence('mary', 'girl');
getSentence('peter', 'boy');
function getSentence($name, $gender) {
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
请注意两个函数调用:
getSentence('mary', 'girl');
getSentence('peter', 'boy');
这两个语句在getSentence函数中运行整个代码块,并将变量$ name和$ gender传递给它。与第一个功能$name = 'mary'
和$gender = 'girl'
和在第二个$name = 'peter'
和$gender = 'boy'
。
因此,函数的主要好处是您可以对代码进行分组以供重用,从而可以为函数所需的变量传递不同的值。这些变量称为功能参数。
将代码分组的另一个好处是可读性更高。您实质上是在命名代码块,并为其赋予特定的目的。使其易于阅读和记忆。
另一个好处是消除了冗余。您不必再编写一次代码块。您只需定义一次,然后多次调用即可。这也使功能代码的编辑会影响对该功能的所有调用-减少了仅更改一个方面时必须编辑多个位置的错误。
例如:
我们可以确保$ name字符串的首字母大写。
function getSentence($name, $gender) {
$name = ucfirst($name);
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
我们只做了一个更改,它影响了对getSentence()的每个函数调用。在两种情况下:
getSentence('mary', 'girl');
和
getSentence('peter', 'boy');
类是功能的分组。
class Play {
function getSentence($name, $gender) {
$name = ucfirst($name);
if ($gender == 'girl') {
$line = $name . ' had a little pony.';
} else if ($gender == 'boy') {
$line = $name . ' had a little horse.';
}
echo $line;
}
function getSong($name) {
// code here
}
}
我们所做的一切
class Play { /** functions here **/ }
围绕一组功能。
这提供了与函数对语句相同的好处,但类对函数则具有相同的好处。
类可以进一步构建一种称为面向对象编程(OOP)的编程方法,您可以在指向PHP语言参考的链接中了解更多信息。
这将类定义为对象的模板或定义。对象与现实世界的对象相似,其功能称为“方法”,可以为该对象调用。
因此,可以将Play类视为使用“ getSentence”和“ getSong”方法称为“ Play”的对象。这些方法然后可以操纵对象“ Play”的属性或返回有关“ Play”的有用信息。这样,Play中的所有代码都变得独立于程序中其他代码。
当Play内的代码需要其他代码才能运行时,可以使用“继承”将其引入,这是OOP的主要组成部分。我不会对此进行详细介绍,因为它是一个非常广泛的主题。
我建议阅读一本有关OOP的书,并阅读它,以真正理解为什么要使用类和方法以及何时使用它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句