向学习PHP的人解释这一点和自我';面向对象设计
我正在尝试教一些朋友PHP,我正在尝试解释向学习PHP的人解释这一点和自我';面向对象设计,php,oop,this,Php,Oop,This,我正在尝试教一些朋友PHP,我正在尝试解释$this->如何在没有技术术语的情况下工作。我相信一旦我让他们理解了这一点,我就可以开始教他们如何使用面向对象编程 我所教的人了解如何使用类、变量,以及它们如何使用函数和变量的扩展、公共、私有和保护范围相互作用 唯一阻碍他们的是向他们解释$this->和self::。我试图通过说“当您引用一个类变量时,您将使用$this->”在函数中调用它来简化它,因为我们在类中而不是在函数本身中定义了它 有没有更好、更简单的方法向学习PHP的OOP设计的人解释这一点
$this->
如何在没有技术术语的情况下工作。我相信一旦我让他们理解了这一点,我就可以开始教他们如何使用面向对象编程
我所教的人了解如何使用类、变量,以及它们如何使用函数和变量的扩展
、公共
、私有
和保护
范围相互作用
唯一阻碍他们的是向他们解释$this->
和self::
。我试图通过说“当您引用一个类变量时,您将使用$this->
”在函数中调用它来简化它,因为我们在类中而不是在函数本身中定义了它
有没有更好、更简单的方法向学习PHP的OOP设计的人解释这一点?
我还注意到,一旦你进入编程语言的高级阶段,你就会习惯于使用这些方法而不去考虑它们。对我来说,如果不使用专业术语解释如何使用这些方法,就很难回到基础上来。您可以尝试以下方法: 每辆车都有燃油(
$fuel
)
但是如果你在车里,你不想知道其他车的燃料,你想知道你车的燃料
所以你喜欢$this->fuel
我认为这应该足够简单,而且不会损失太多的准确性。当您有一个类-现有对象-示例:
class Object
{
protected $variable;
public function method($param) {}
}
$this
只是告诉ME
的一种方式
例如,当你开始吃东西时,你就这样做了
ME::getSpoon();
ME::UseSPoonToFetchSoup();
ME::BringSpoonToMouth();
ME::PutSpoonInMouth();
ME::TakeSpoonOut();
ME::Swallow():
然后重复一些步骤。
ME
是您自己的参考资料。如果你想一想,这个算法几乎适用于所有人,每个现有的ppl都可以使用它,只要记住,ME
是实际的,人类用勺子喝汤
对象也是如此。在本例中,如果将代码稍微更改为
class Object
{
protected $variable = 0;
public function method($param = 1) {$this->variable += $param; return $this->variable;}
}
执行方法method()不带参数的code>会将$variable
1添加到对象自己的内存中,然后告诉您新的总和
$obj1 = new Object();
$obj2 = new Object();
echo "Obj1: " .$obj->method(10).'<br/>'; //this will print 10
echo "Obj2: " .$obj->method(2).'<br/>'; //;this will print 2
$obj1=新对象();
$obj2=新对象();
回显“Obj1:.$obj->方法(10)。
//这将打印10个
echo“Obj2:.$obj->方法(2)。”
;//;这将打印2
这些对象必须知道他们是谁,因此需要知道他们自己的引用,这就是$This
的相同之处
希望这个解释非常简单易懂。我认为,要教授PHP的$this
的概念,必须首先解释OOP的基础知识。这是一个只有在适当的背景下才有意义的概念。爱因斯坦:如果你不能向一个六岁的孩子解释它,你自己也不理解它
他们理解OOP设计是如何工作的,但他们只是被OOP的$this->
部分挂断了。我相信,一旦我让他们克服了理解这个小问题,我就可以进一步帮助他们。$此
指的是对象中对象的内部变量和方法。我想很难解释封装以及为什么这很有用;)根据您的答案,可以使用它查找模型($this->model
)、制作年份($this->year
)和颜色($this->color
)。仅查找有关您汽车的信息。请-如果您拒绝投票-留下评论原因。