我对php有点生疏,我想知道如何调用login
class2
中可用的函数,class1
内部。这是一个例子:
<?php
require_once("property2.php");
class Class1
{
public function __construct()
{
$cls2 = new Class2()
}
public function method1()
{
$cls2->login() //cl2 is undefined
}
} ..
//this is the function
...
class Class2
{
public function __construct()
{
}
//This is the function to call
public function login()
{
//Some stuff
}
} ...
现在PHPSTORM
说变量cls2
是未定义的。我做错了什么?
当你设置你的变量时,你没有把它设置为一个类属性。在类中定义一个private
变量,并使用 $this
关键字"设置并获取它"。
class Class1 {
private $cls2;
public function __construct() {
$this->cls2 = new Class2();
}
public function method1() {
$this->cls2->login();
}
}
实现此目的的另一种方法是使用继承,其中一个类被视为"父"类。您将通过使用extends
来实现此目的
class Class1 {
public function __construct() {
//Some stuff
}
public function login() {
//Some stuff
}
}
class Class2 extends Class1 {
public function __construct() {
parent::__construct();
}
public function method1() {
$this->login();
}
}
class Class1
{
public function __construct()
{
$cls2 = new Class2();
}
public function method1()
{
$cls2->login() //cl2 is undefined
}
}
当您创建 Class1 并调用 $cls2 = new Class2();
时,$cls2
仅存在于本地。您必须使其成为类属性:
class Class1
{
public $cls2;
public function __construct()
{
$this->cls2 = new Class2();
}
public function method1()
{
$this->cls2->login();
}
}
然后,您将能够使用$this
关键字访问它。
另请注意分号。