【问题标题】:How to call a function or method inside its own class in php?如何在php中调用自己的类中的函数或方法?
【发布时间】:2016-01-30 22:51:36
【问题描述】:

我在 PHP 中声明了我的类和里面的几个函数。我需要在另一个函数中调用其中一个函数,但我得到了这个函数未定义的错误。这就是我所拥有的:

<?php
class A{

 function b($msg){
   return $msg;
 }

 function c(){
   $m = b('Mesage');
   echo $m;
 }
}

【问题讨论】:

    标签: php function oop methods


    【解决方案1】:

    这是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;
     }
    }
    

    【讨论】:

      【解决方案2】:

      您可以通过$this 使用类函数

      <?php
          class A{
      
           function b($msg){
             return $msg;
           }
      
           function c(){
             $m = $this->b('Mesage');
             echo $m;
           }
          }
      

      【讨论】:

        【解决方案3】:

        你需要使用$this来引用当前对象

        $this-&gt; 在对象内部,或 self:: 在静态上下文中(用于静态方法或来自静态方法)。

        【讨论】:

          【解决方案4】:

          调用当前类中的函数需要使用$this,该关键字用于非静态函数成员。

          如果被调用的函数只在类中使用,也只是一个快速提示,设置私有的可见性

          private function myfunc(){}
          

          如果您要从课堂外调用它,请保持原样。如果你没有在 PHP 中声明一个成员函数的可见性,它默认是公共的。为您编写的任何成员函数设置可见性是一种很好的做法。

          public function myfunc(){}
          

          如果这个类将被另一个类继承,并且您希望只有子类具有这些功能,则为受保护。

          protected function myfunc(){}
          

          【讨论】:

            猜你喜欢
            • 2018-11-21
            • 1970-01-01
            • 2012-06-11
            • 2011-05-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-02-07
            相关资源
            最近更新 更多