繁体   English   中英

PHP-从另一个类调用类函数

[英]PHP - Call class function from another class

我正在开发一个需要记录过程的应用程序。 所以我是从main.php登录的,现在我需要从另一个类( class_TestingLog.php )登录

下一个代码是我正在尝试的方式。 你能告诉我我在做什么错吗?

先感谢您。

main.php

[...]

#Logging class
include_once("./classes/class_log.php"); 
$Class_Log = New Class_Log();

#TestingLog Class
include_once("./classes/class_testingLog.php");
$Class_TestingLog = New Class_TestingLog(); 

[...]

$Class_Log->FreeLog("Test log");
$Class_TestingLog->AnyFuncion();`

[...]

class_log.php

[...]

public function FreeLog($text)
{
    // echo $text . "\n"; #mistake
    $this->outputText .= text; #correct one
}

[...]

class_testingLog.php

private $Class_Log = '';

[...]

public function __construct()
{
    #Requires
    require_once("./classes/class_log.php");

    $this->Class_Log = New Class_Log();
}

public function AnyFuncion()
{
    var_dump($this); #From real file
    $this->Class_Log->FreeLog("Test log from another classs");
}

[...]

浏览器输出

Test log

浏览器预期输出

Test log
Test log from another classs

================================================== =========================

编辑

复制FreeLog()时出错; 它将参数字符串值存储到私有变量中,而不是回显该变量。

您在__constructClass_TestingLog内的require_once语句无效且不必要。 由于两个文件都位于同一目录中,因此应为"class_log.php"而不是"./classes/class_log.php" 无论如何都不需要它,因为当您将它们都包含在main.php它已经被加载。 因此,在没有require_once情况下尝试。

编辑:如在聊天中讨论的那样做:

main.php

$Class_TestingLog = New Class_TestingLog($Class_Log); 

class_testingLog.php

public function __construct($ClassLog)
{
    $this->Class_Log = $ClassLog;
}

这将使用与main.php相同的Class_TestingLog类内部的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM