php中的class和function有什么区别?

Manǒjκiψàη

我自己使用以下代码,它们给出的结果相同。那么为什么我们使用类而不是普通函数,以及类和函数之间的区别是什么?

<?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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP中的`/`和`\`有什么区别

来自分类Dev

Javascript:Function和Class有什么区别

来自分类Dev

dart中的Function()和Function有什么区别?

来自分类Dev

Swift中的function和function(_ :)有什么区别?

来自分类Dev

javascript中的class和classname有什么区别?

来自分类Dev

硒中的.getClass()和.getAttribute(“ class”)有什么区别

来自分类Dev

硒中的.getClass()和.getAttribute(“ class”)有什么区别

来自分类Dev

Google Guava中的Function和AsyncFunction有什么区别?

来自分类Dev

Blazor中的@ {} @code {}和@function {}有什么区别?

来自分类Dev

Google Guava中的Function和AsyncFunction有什么区别?

来自分类Dev

PHP中的delete()和unlink()有什么区别

来自分类Dev

PHP中的'isset()'和'!empty()'有什么区别?

来自分类Dev

PHP中的“ isset()”和“!empty()”有什么区别?

来自分类Dev

PHP中的while(true)和for(;;)之间有什么区别?

来自分类Dev

php 中的 $var 和 ($var) 有什么区别?

来自分类Dev

PHP {}和{{}}有什么区别

来自分类Dev

PHP {}和{{}}有什么区别

来自分类Dev

XPath中.//和// *有什么区别?

来自分类Dev

Ruby中的“ &&”和“&”有什么区别

来自分类Dev

Pig中的`::`和`.`有什么区别?

来自分类Dev

magrittr中的%>%和%,%有什么区别?

来自分类Dev

在Oracle中:::和:=有什么区别?

来自分类Dev

Golang中=和<-有什么区别

来自分类Dev

SML中的“ a”和“ a”有什么区别?

来自分类Dev

Go中的:=和=有什么区别?

来自分类Dev

在Purescript中;->和=>有什么区别?

来自分类Dev

Groovy中==〜和!=有什么区别?

来自分类Dev

Makefile中%和*有什么区别

来自分类Dev

R中的[]和[[]]有什么区别?

Related 相关文章

热门标签

归档