オブジェクト クラスのインスタンス化に成功しましたが、関数の呼び出し方法がわかりません。ここに私のPHPコードがあります:
$obj = new router();
class router{
public function __construct(){
if($_SERVER['REQUEST_METHOD'] == 'GET'){
echo "GET";
$page = 'index';
$funct = 'myfuncempty';
if (!empty ($_GET)){
$page = $_GET['page'];
$funct = $_GET['func'];
}
$obj = new $page(); //instantiating object with get from class
$obj->funct;
}
else{
echo "POST";
}
}
}
class index{
public function __construct(){
echo "hello I'm index";
}
public function myfunc(){
echo "yo";
}
public function myfuncempty(){
echo "empty get";
}
}
class login{
public function __construct(){
echo "hello I'm login";
}
public function loggedin(){
echo "you're logged in";
}
public function loggedinempty(){
echo "its empty";
}
}
これは、GET 経由で変数を渡すために使用する HTML フォームです。
<html>
<head></head>
<body>
<form action="index.php" method="POST"><input type ="text" name="page" id="page" /><input type="submit" /></form>
<form action="index.php" method="GET">Page:<input type="text" name="page" id="page" />Function:<input type="text" name="func" id="func" /><input type= "submit" />
</body>
</html>
index に page を入力し、myfunc に function を入力すると、次の応答が返されます。
GEThello I'm login Notice: Undefined property: login::$funct in /home/cr47/public_html/final_project/index.php on line 27
そのため、「ページ」を正しく渡し、オブジェクトをインスタンス化していますが、myfunc 関数を正しく呼び出していません。何か案は?