gpt4 book ai didi

php - PHP 5.2.x 中的意外 T_PAAMAYIM_NEKUDOTAYIM

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:52 34 4
gpt4 key购买 nike

我很难理解为什么我在以下代码中遇到了 Unexpected T_PAAMAYIM_NEKUDOTAYIM 错误,这对我来说似乎完全正确...

class xpto
{
public static $id = null;

public function __construct()
{
}

public static function getMyID()
{
return self::$id;
}
}

function instance($xpto = null)
{
static $result = null;

if (is_null($result) === true)
{
$result = new xpto();
}

if (is_object($result) === true)
{
$result::$id = strval($xpto);
}

return $result;
}

PHP 5.3+ 的输出:

echo var_dump(instance()->getMyID()) . "\n"; // null
echo var_dump(instance('dev')->getMyID()) . "\n"; // dev
echo var_dump(instance('prod')->getMyID()) . "\n"; // prod
echo var_dump(instance()->getMyID()) . "\n"; // null

prior versions但是,我不能执行 $result::$id = strval($xpto);,有人知道为什么吗?

这个问题有什么解决方法吗?

最佳答案

错误的原因很简单,语法在< 中不受支持。 5.3.

但是,如果您只想访问静态变量 $id,则语法为:

$result::id

如果您确实需要访问静态变量变量,那么解决方法是使用反射:

$class = new ReflectionClass($xpto);
echo $class->setStaticPropertyValue ('id', strval($xpto));

ReflectionClass

关于php - PHP 5.2.x 中的意外 T_PAAMAYIM_NEKUDOTAYIM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995540/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com