繁体   English   中英

如何向范围解析运算符提供常规变量

[英]How to provide regular variable to Scope Resolution Operator

$version = \jamesiarmes\PhpEws\Client::$ews_version;

投掷

未捕获的错误:访问未声明的静态属性:

其中$ews_version是客户端提供的变量,可能的值为:

$ews_version = 'VERSION_2007';
$ews_version = 'VERSION_2007_SP1';
$ews_version = 'VERSION_2009';
$ews_version = 'VERSION_2010';
$ews_version = 'VERSION_2010_SP1';
$ews_version = 'VERSION_2010_SP2';
$ews_version = 'VERSION_2013';
$ews_version = 'VERSION_2013_SP1';
$ews_version = 'VERSION_2016';

手动提供const,效果很好:

$version = \jamesiarmes\PhpEws\Client::VERSION_2013_SP1;

请帮忙。 谢谢。

码:

$ews_version = $_REQUEST['version']; // User posted version (i.e. VERSION_2009)

// Set connection information.
$host = $ews_host;
$username = $ews_username;
$password = $ews_password;
$version = \jamesiarmes\PhpEws\Client::$ews_version;

$client = new \jamesiarmes\PhpEws\Client($host, $username, $password, $version);

我认为您正在尝试使用变量访问常量。

您可以使用反射解决此问题:

$ews_version = 'VERSION_2007';
$ref = new ReflectionClass(\jamesiarmes\PhpEws\Client::class);
$version = $ref->getConstant($ews_version);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM