这可能是一个很难回答的问题,但我似乎在任何地方都找不到答案。是否可以在组件中创建自己的函数并在同一组件中调用它?
示例:
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; }
变量作用域意味着doThis
函数内的$a
在函数完成时丢失,但您可以这样做:
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
声明它,则可以通过如下实例在类外直接使用:
$var=new myComponent();
// Crete a new instance of the object.
echo $var->a; // Outputs the value.
或者,您可以使用private
属性,这些属性对函数中的对象本身可见,但对外部世界不可见(好吧,无论如何都无法访问)。