gpt4 book ai didi

php - 'assert' 忽略当前命名空间是一个错误吗?

转载 作者:行者123 更新时间:2023-12-04 17:03:56 24 4
gpt4 key购买 nike

以下问题应该被视为正常行为还是错误?

<?php
namespace Ns;

function func ()
{
echo "Hello\n";
return true;
}

func(); // ok
assert('func()'); // "Call to undefined function func()"

最佳答案

assert我认为它的行为方式与 eval 相同这样做的原因是,在评估传递给它的代码时,它将执行切换到全局命名空间。在调用中指定命名空间按您的预期工作:

<?php
namespace Ns;

function func ()
{
echo "Hello\n";
return true;
}

func(); // ok
assert('Ns\func()');

我相信这是正常行为; assert是一个内置函数,您基本上是将一个字符串传递给它以进行评估。当执行传递到 assert 内部时函数,它将在一个完全不同的命名空间(主要是全局命名空间)中。

关于php - 'assert' 忽略当前命名空间是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21485936/

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