Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中的另一个类中调用方法_Php_Oop - Fatal编程技术网

在php中的另一个类中调用方法

在php中的另一个类中调用方法,php,oop,Php,Oop,我是php新手,正在尝试调用另一个类中的函数 如何在类xyz中调用函数1和函数2 class abc { private $lmn = "lmn"; private $say1; private static $static; private function __construct(){ $say1 = print $this->lmn; } public static function1(){ $static = "YEAAHHHH"; } public functio

我是php新手,正在尝试调用另一个类中的函数

如何在类xyz中调用函数1和函数2

class abc {
private $lmn = "lmn";
private $say1;
private static $static;

private function __construct(){
   $say1 = print $this->lmn;

}

public static function1(){

$static = "YEAAHHHH";
}

public function function2(){

    return $this->say1;
}
文件2:

require 'abc.php';

class xyz {

/**
* $e = new xyz();
*
*/


$e = xyz:: function1();// error
$d = xyz:: function 2(); //error

}
在什么情况下我应该使用

$obj = new class(); 
$obj->functionname();


可以在不实例化类的情况下调用静态函数

$myClass::function1();
首先需要实例化非静态函数:

$myClass = new abc();
$myClass->function2();
在你的例子中:

require 'abc.php';

class xyz {

    public function CallFunc1()
    {
        abc::function1();
    }

    public function CallFunc2()
    {
       $myClass = new abc();
        $myClass->function2();
    }

}

可以在不实例化类的情况下调用静态函数

$myClass::function1();
首先需要实例化非静态函数:

$myClass = new abc();
$myClass->function2();
在你的例子中:

require 'abc.php';

class xyz {

    public function CallFunc1()
    {
        abc::function1();
    }

    public function CallFunc2()
    {
       $myClass = new abc();
        $myClass->function2();
    }

}

这里有两种不同类型的方法,静态和非静态

调用静态(
function1()
  • 您不需要实例化该类,因为它是静态的

调用非静态(
function2()
  • 您需要实例化类,因为它不是静态的


这里有两种不同类型的方法,静态和非静态

调用静态(
function1()
  • 您不需要实例化该类,因为它是静态的

调用非静态(
function2()
  • 您需要实例化类,因为它不是静态的


首先,函数和2()之间不能有空格:


我本来打算有一秒钟的时间,但@hd比我快。

首先,函数和2()之间不能有空格:

    require 'abc.php';

    class xyz {

       public function static(){
          return abc:: function1();// this is a static function
       }
       public function nonstatic(){
            $e = new abc();
            return $e->function2(); 
        }

     } 

我本来打算有一秒钟的时间,但是@hd比我快了。

你可以像这样调用function1:

    require 'abc.php';

    class xyz {

       public function static(){
          return abc:: function1();// this is a static function
       }
       public function nonstatic(){
            $e = new abc();
            return $e->function2(); 
        }

     } 
abc::function1();
它是
abc
中的一种方法,而不是
xyz

function2()
只有在拥有
abc
的实例时才会调用,因为它是一个实例方法而不是静态方法。一、 e

$abc = new abc();
$abc->function2();

静态函数用于在类上调用,实例方法(即
function2()
用于在类的实例上调用。我建议阅读。

您可以调用function1,如:

abc::function1();
它是
abc
中的一种方法,而不是
xyz

function2()
只有在拥有
abc
的实例时才会调用,因为它是一个实例方法而不是静态方法

$abc = new abc();
$abc->function2();

静态函数旨在对类、实例方法(即
function2()调用)
用于在类实例上调用。我建议您阅读。

我认为您把代码弄糟了。我可以分享一些我发现非常有用的东西,作为您第二个问题的答案。请花一点时间阅读。这是非常基本、简单且指导性很好的内容


我想你把代码搞乱了。我可以分享一些我觉得非常有用的东西,作为你第二个问题的答案。花点时间读一下。这是非常基本、简单和有指导性的


您还有一个类型
$d=xyz::function 2();//error
应该是
$d=xyz::function 2();//error
function1()
function2()
abc
类中,而不是
xyz
function2()
也没有声明为静态函数。是的,那么应该如何调用另一个类XYZ中的静态和非静态函数。您还有一个类型
$d=XYZ::function 2();//error
应该是
$d=XYZ::function2();//error
function1()
function2())
abc
类中,而不是
xyz
function2()
也没有声明为静态函数。是的,那么应该如何在另一个类xyz中调用静态和非静态函数。但是$abc=new abc();//在我的示例中,它不会调用私有构造函数吗..???但是$abc=new abc();//在我的示例中,它不会调用私有构造函数吗。。????