我有一个这样的课程:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
class api {
function __construct($_GET) {
if ($_GET['method'] == "add") {
$this->add();
}
else if ($_GET['method'] == "subtract") {
$this->subtract();
}
}
function add() {
return "Adding!";
}
function subtract() {
return "Subtracting!";
}
}
$api = new api($_GET);
echo $api;
?>
当我从浏览器发送一个URL:test.php?method = add
我没有收到任何输出或错误消息。我缺少什么?
答案 0 :(得分:1)
你的构造函数没有返回任何东西,只返回你的其他函数。试试这个。
Class api {
function __construct($_GET) {
if ($_GET['method'] == "add") {
$this->message = $this->add();
}
else if ($_GET['method'] == "subtract") {
$this->message = $this->subtract();
}
}
function add() {
return "Adding!";
}
function subtract() {
return "Subtracting!";
}
}
$api = new api($_GET);
echo $api->message;
答案 1 :(得分:0)
将您的构造函数更改为此...
function __construct() {
if(isset($_GET)){
if($_GET['method']== "add") {
$this->add();
}
else if($_GET['method'] == "subtract"){
$this->subtract();
}}
}
你不必将$ _GET传递给构造,因为它是一个超级全局的,并且随处可用
答案 2 :(得分:0)
试试这个
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
class api {
function __construct() {
if ($_GET['method'] == "add") {
return $this->add();
}
else if ($_GET['method'] == "subtract") {
return $this->subtract();
}
}
function add() {
return "Adding!";
}
function subtract() {
return "Subtracting!";
}
}
$api = new api();
echo $api->__construct();
?>
__construct()
是类方法,因此为了从此方法获取返回值,您必须以这种方式使用它$api->__construct()