【发布时间】:2016-01-30 22:51:36
【问题描述】:
我在 PHP 中声明了我的类和里面的几个函数。我需要在另一个函数中调用其中一个函数,但我得到了这个函数未定义的错误。这就是我所拥有的:
<?php
class A{
function b($msg){
return $msg;
}
function c(){
$m = b('Mesage');
echo $m;
}
}
【问题讨论】:
我在 PHP 中声明了我的类和里面的几个函数。我需要在另一个函数中调用其中一个函数,但我得到了这个函数未定义的错误。这就是我所拥有的:
<?php
class A{
function b($msg){
return $msg;
}
function c(){
$m = b('Mesage');
echo $m;
}
}
【问题讨论】:
这是basic OOP。您使用$this 关键字来引用类的任何属性和方法:
<?php
class A{
function b($msg){
return $msg;
}
function c(){
$m = $this->b('Mesage');
echo $m;
}
}
我建议清理此代码并设置您的方法的 visibility(例如私有、受保护和公共)
<?php
class A{
protected function b($msg){
return $msg;
}
public function c(){
$m = $this->b('Mesage');
echo $m;
}
}
【讨论】:
您可以通过$this 使用类函数
<?php
class A{
function b($msg){
return $msg;
}
function c(){
$m = $this->b('Mesage');
echo $m;
}
}
【讨论】:
你需要使用$this来引用当前对象
$this-> 在对象内部,或 self:: 在静态上下文中(用于静态方法或来自静态方法)。
【讨论】:
调用当前类中的函数需要使用$this,该关键字用于非静态函数成员。
如果被调用的函数只在类中使用,也只是一个快速提示,设置私有的可见性
private function myfunc(){}
如果您要从课堂外调用它,请保持原样。如果你没有在 PHP 中声明一个成员函数的可见性,它默认是公共的。为您编写的任何成员函数设置可见性是一种很好的做法。
public function myfunc(){}
如果这个类将被另一个类继承,并且您希望只有子类具有这些功能,则为受保护。
protected function myfunc(){}
【讨论】: