繁体   English   中英

PHP中的Method,Property和Variable之间有什么区别

[英]What is the difference between Method, Property and Variable in PHP

我正在用PHP和Laravel学习OOP。 到目前为止,我的想法是variableproperty或多或少是相同的。 Methods等同于functions 但是有时我在许多文章中看到它们表示variableproperty略有不同。 例如,在laravel命名约定中Model属性变量具有不同的术语。 variableproperty之间有什么区别(如果有)?

是的,方法是一种功能。

Model属性将是类中的全局变量,因此您可以在所有方法中使用它。 并且根据访问修饰符(私有,受保护,公共),可以从继承自该类的其他类中使用模型属性。

虽然变量将在方法内使用,并且仅在该方法的主体内使用。

属性是属于对象的变量。 也称为“成员”。 恕我直言,主要区别在于范围。 如果将public用作可见性,则变量仅在方法内可用,但在整个Class中以及对象中均是属性。 http://php.net/manual/zh/language.oop5.visibility.php

PHP OOP中的属性(也称为成员变量)是存在于类内部的变量,并且必须是私有的,受保护的或公共的。 例如:

class Bird {
    private $color; // This is a property of the Bird class
}

$var = 123; // This is just a normal variable

因此,文档所引用的Model属性只是模型的成员变量。

就功能和方法之间的区别而言,它们是相似的,除了一个主要区别:方法是存在于类内部的函数,并且必须是私有的,受保护的或公共的。 例如:

class Bird {
    public function sing() { // This is a method
        echo 'tweet-tweet';
    }
}

function sayHello() { // This is a function
    echo 'hello';
}

注意:如果您未将属性或方法声明为私有,受保护或公共,则假定它是公共的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM