在php中的另一个类中调用方法
我是php新手,正在尝试调用另一个类中的函数 如何在类xyz中调用函数1和函数2在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
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();//在我的示例中,它不会调用私有构造函数吗。。????