【问题标题】:Variable is null in PHP closurePHP闭包中的变量为空
【发布时间】:2017-05-29 01:56:49
【问题描述】:

变量$user 在这个闭包函数中为空。我不明白为什么。

Routes.php

require_once(__DIR__ . '/classes/user.php');
$user = User::getInstance(); // returns a $_SESSION user or a new User()

这不起作用

$app->group('/user', function () use ($app, $user) {

    $app->post('/activate', function(Request $request, Response $response) {
        $parsedBody = $request->getParsedBody();
        $result = $user->activate($parsedBody); // error user is null
        return $response->withJson($result);
    });
});

确实如此

$app->group('/user', function () use ($app) {

    $app->post('/activate', function(Request $request, Response $response) {
        $parsedBody = $request->getParsedBody();
        $user = User::getInstance();
        $result = $user->activate($parsedBody);
        return $response->withJson($result);
    });
});

【问题讨论】:

标签: php


【解决方案1】:

您需要将该变量继承到您的函数中。

http://php.net/manual/en/functions.anonymous.php - #3

$app->group('/user', function () use ($app, $user) {

    $app->post('/activate', function(Request $request, Response $response) use ($user) {
        $parsedBody = $request->getParsedBody();
        $result = $user->activate($parsedBody); // now it shouldn't
        return $response->withJson($result);
    });
});

【讨论】:

  • 啊..我真的很讨厌那个。有什么办法可以不那么严格吗?
猜你喜欢
  • 2014-03-05
  • 1970-01-01
  • 2012-11-03
  • 2015-11-02
  • 2013-09-08
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多