这可能是一个非常菜鸟的问题,但我似乎无法在任何地方找到答案。是否可以在一个组件中创建自己的函数并在同一个组件中调用它?
例子:
Class myComponent extends Component{
public function doSomething(){
doThis();
$b = $a + 2;
return $b;
}
function doThis(){
$a = 0;
}
}
您在这里混淆了几件事。
您通常可以毫无问题地创建这样的对象方法。您必须将它们称为对象方法:
public function doSomething() {
$this->doThis();
...
}
只是调用doThis()
不会神奇地$a
在调用范围内创建变量。变量将在内部创建doThis
并包含在那里。这是一件好事。您必须显式地return
从方法中获取值以使其可用:
public function doSomething() {
$a = $this->doThis();
...
}
protected function doThis() {
return 0;
}
变量范围意味着当函数完成时函数$a
内部会丢失,但你可以这样做:doThis
Class myComponent extends Component
{
public function doSomething()
{
$a=$this->doThis();
$b = $a + 2;
return $b;
}
function doThis()
{
$a = 0;
return $a;
}
}
我可能会使用这样的类属性:
Class myComponent extends Component
{
public $a;
public function doSomething()
{
$this->doThis();
$b = $this_.a + 2;
return $b;
}
public function doThis()
{
$this->a = 0;
}
}
类属性是通过函数更新信息的好方法。整个班级在任何地方都可以访问它们。如果您通过public
if 声明它可以直接通过实例在类外部使用,如下所示:
$var=new myComponent();
// Crete a new instance of the object.
echo $var->a; // Outputs the value.
或者,您可以使用private
在函数中对对象本身可见但对外部世界不可见的属性(好吧,无论如何都无法访问)。