我正在嘗試在本機 php 中構建一個兒子 api。我創建了一個帶有類的結構,現在我嘗試在常規 php 文件中使用這些類,該文件將使用 http 客戶端從外部調用。問題是我無法從這些類中實例化新對象,當我做的一切都停止并且我無法繼續執行我的文件時。用戶.php :use Actions\Users\UserMethods;if ($_SERVER['REQUEST_METHOD'] === 'GET') { try{ $Methods = new UserMethods(); if($_GET["id"]!==null){ $user = $Methods->getUser($_GET["id"]); var_dump($user); echo json_encode(['user'=>$user]); } }catch (Exception $exception){ returnError($exception->getMessage()); }}在我分配 $Methods 之前,我可以 vardump 任何東西,但在我分配之后什么都不起作用。用戶方法類:namespace Actions\Users;use Models\UserModel;use database\dbconnect;use Constants\DbConfig;class UserMethods{ private $DataBase; private $userValidator; /** * UserMethods constructor. */ public function __construct() { try{ $this->userValidator = new UserValidator(); $this->DataBase = new dbconnect(DbConfig::$BD_HOST.":".DbConfig::$DB_PORT, DbConfig::$DB_USERNAME,DbConfig::$DB_PASSWORD,DbConfig::$DB_DBNAME); }catch(\Exception $exception){ var_dump($exception); } } public function createUser(UserModel $userModel){ try{ $this->userValidator->validate($userModel); $name=$userModel->getName(); $email= $userModel->getEmail(); $sqlQuery="Insert into users(email,name) values ($$email,$$name)"; return $this->handleQuery($sqlQuery); }catch(\Exception $exception){ throw $exception; } } public function updateUser(UserModel $userModel){ try{ $this->userValidator->validate($userModel); $name=$userModel->getName(); $email= $userModel->getEmail(); $id=$userModel->getId(); $sqlQuery=" UPDATE users SET name = $$name, email = $$email, ... WHERE id=$$id; ";可能是什么問題?
2 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
您似乎錯過了文件的導入。使用命名空間時,為了使導入幾乎自動,最好實現自動加載器,我建議檢查如何使用 composer 啟用自動加載
如果您的類很少,您可以避免使用自動加載器而只是手動導入每個類,在這種情況下,您應該:
require UserMethods.php
在 User.php 文件的開頭。
- 2 回答
- 0 關注
- 221 瀏覽
添加回答
舉報
0/150
提交
取消