私はそれを理解しようとしています。別のクラスのクラスでパブリックメソッドを使用する方法を教えてください。このエラーが発生しましたPHP PDO他のクラスとは異なるクラスのパブリックメソッドを呼び出す
Fatal error: Uncaught Error: Using $this when not in object context
私は、挿入メソッドを含むメインクラスのユーザーが、基本的にこのメソッドは、データベースに値を挿入します。ここ
<?php
class User{
protected $pdo;
public function __construct($pdo){
$this->pdo = $pdo;
}
public function insert($table, $fields){
//here we insert the values into database
}
}
?>
は私が
<?php
session_start();
include 'database/connection.php';
include 'classes/user.php';
include 'classes/follow.php';
include 'classes/message.php';
global $pdo;
$userObj = new User($pdo);
$followObj = new Follow($pdo);
$messageObj = new Message($pdo);
?>
それらを使用することができ、私は他のクラスのメッセージを持っている、と続くので、クラスをインスタンス化するために、私のconfig.phpファイルです。フォロークラスで私は、ユーザークラスからすべてのメソッドにアクセスすることができ、およびメッセージクラスに私はこの方法を覚えて、sendNotificationをメソッドを使用しようとしているフォロークラスのユーザクラスで
<?php
class Message extends User{
public function __construct($pdo){
$this->pdo = $pdo;
}
public static function sendNotification($user_id, $followerID, $type){
//calling this method from user class
$this->insert('notifications', array('By' => $user_id, 'To' => $followerID, 'type' => $type));
}
}
?>
insertメソッドを使用しようとしていますメッセージクラスであり、そしてそれは私が何をすべき致命的なエラー
Fatal error: Uncaught Error: Using $this when not in object context
を取得するユーザークラス
<?php
class Follow extends User{
public function __construct($pdo){
$this->pdo = $pdo;
}
public function follow($user_id, $followerID){
//here will be query to insert follow in database
//now i need to sendNotification method from user
Message::sendNotification($user_id, $followerID, 'follow');
}
}
?>
からメソッドを使うのか?
あなたは静的メソッド – Thielicious
に '$ this'を使用することはできませんしたがって
を使用することができない理由は、これを行う、ありませんグローバルキーワードを使用します。それは悪い練習です – Akintunde007$this
は以下の機能では私は静的キーワードを削除したとしたら、私はどのようにフォロークラスのメソッドにアクセスできますか? – dinho