私はphp-7を使用しています。テストを実行しているときにこのエラーが発生しました。私はいくつかの記事/答えを読んだことがあるが、それらは静的関数/変数に関連する場所を
public function testEmail(){
$this->assertTrue(Notification::sendEmail("[email protected]",["[email protected]"],"phpunit testting","test true"),"send email");
}
Error: Using $this when not in object context
src/Notification.php:28
tests/NotificationTest.php:10
それは$this->log->info(" Message sent ");
内容
<?php
declare(strict_types=1);
namespace CCP;
use CCP\MyMailer;
class Notification{
private $log;
public function __construct(){
$this->log = $_SESSION['CFG']->log;
}
public function sendEmail(string $from, array $to, string $subject, string $body): boolean{
$mail = new MyMailer;
$mail->setFrom($from);
foreach($to as $value){
$mail->addAddress($value);
}
$mail->Subject = $subject;
$mail->Body = $body;
if(!$mail->send()) {
$this->log->error(" Message could not be sent for ");
$this->log->error(" Mailer error: ".$mail->ErrorInfo);
return false;
} else {
$this->log->info(" Message sent ");
}
return true;
}
}
?>
私のテストに失敗しましただから私はこれがどのように当てはまるのかわかりません。
あなたは静的にメソッドを呼び出している:あなたは、その後
sendEmail
を呼び出すNotification
クラスのオブジェクトを初期化する必要があります。 – Maerlynあなたは最後のものの後ろに '}'の最後の行を見つけられませんか、それとも行方不明ですか? –
ちょうど確かにチェックされて、あなたは**間違いなく**閉じる '}'がありません。 –