当前我正在尝试从字符串中调用函数。
这是我稍后调用的函数:
<?php
namespace App'Validation'Options;
class FacebookOptionValidation
{
static public function validate()
{
echo: 'example';
die();
}
}
这是我的控制器:
<?php
namespace App'Http'Controllers'Profile;
use App'Validation'Options;
class ProfileUserEditController extends Controller {
public function updateUserOption()
{
$class = 'Options'FacebookOptionValidation';
$class::validate();
}
}
在这种情况下,Laravel显示了一个错误:未找到类"Options''FacebookOptionValidation"
但当我这样调用我的函数时,一切都很好:
use App'Validation'Options;
class ProfileUserEditController extends Controller {
public function updateUserOption()
{
Options'FacebookOptionValidation::validate();
}
}
如前所述,可以从字符串中调用类/函数。但在我的情况下,这是不可能的——无论是静态变体还是非静态变体。
这是"拉拉韦的事"吗?
尝试使用完整命名空间进行调用
class ProfileUserEditController extends Controller {
public function updateUserOption()
{
$class = 'App'Validation'Options'FacebookOptionValidation';
$class::validate();
}
}
使用PHP7,您甚至可以做到这一点:
(App'Validation'Options'FacebookOptionValidation::class)::validate();
一行代码,不使用字符串