【问题标题】:mkdir() returns No such file or directory in <b>...</b> on line <b>..</b><br /> [closed]mkdir() 返回 No such file or directory in <b>...</b> on line <b>..</b><br /> [关闭]
【发布时间】:2019-09-04 13:27:28
【问题描述】:

我是 PHP 开发人员,但我无法理解这个错误

$uid = $this->db->Tables("telegrambots")->search([
  "telegrambotid" => $this->botKey
])['uniqueId'];
if (!file_exists("TelegramBotCommands/{$uid}"))
  mkdir("TelegramBotCommands/{$uid}");

【问题讨论】:

  • PHP 日志中是否有更有用的错误消息? “500 错误”并不是真正的错误消息,它只是服务器告诉浏览器发生了故障。
  • 您的实际问题是什么?为什么需要使用 eval?大多数情况 - 你不需要它
  • A 500 错误是一种通用错误消息,几乎涵盖了脚本可能出错的每一件事。检查您的服务器错误日志以找出确切的错误消息。
  • eval 是邪恶的,如果可以(而且几乎总是可以),尽量避免它
  • @MDReal 你不需要 eval 来做到这一点..

标签: php mkdir


【解决方案1】:

Eval 是邪恶的,你可能不需要它所以不要使用它。您想调用具有动态名称的类吗?使用这个:

$dynamic_class_name = 'Video'; 
$video = new $dynamic_class_name();

话虽如此,您的带有 eval 的 sn-p 似乎工作得很好: http://sandbox.onlinephpfunctions.com/code/e3bb43b1ccfd27365247120e9c5751aac9e2b4ce

您必须检查日志以了解错误是什么。

编辑:

正如您所说,您正在使用命名空间,请尝试使用完整的类名,包括 eval 函数中的命名空间(如 new \namespace\Videos(...。但更好的是:不要使用 eval!

【讨论】:

  • 谢谢,我使用命名空间。我不知道为什么,但在日志中返回找不到类视频
  • 确保在 eval 中使用完整的类名,包括命名空间 (\my\namespaces\Videos)。查看我的更新答案
  • 谢谢这工作。使用完整的命名空间
猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 2018-01-29
  • 2020-11-22
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多