PHP7-\uuuToString(或其他接口)返回类的布尔表示
我要问两个问题,因为我很确定第一个问题的答案是“不,你不能”或者一个派生词PHP7-\uuuToString(或其他接口)返回类的布尔表示,php,types,php-7,Php,Types,Php 7,我要问两个问题,因为我很确定第一个问题的答案是“不,你不能”或者一个派生词 \uuu toString()让我们告诉PHP在假定字符串的情况下如何处理实例(例如print())。我还没有找到布尔函数的这种能力(例如,if($instance){})。有这样的东西吗?甚至像ArrayAccess这样的接口 如果没有,如何向PHP提交请求——尽管对PHP内部或C了解不够,无法提出实现它的方法?(因此,可能不是完整的RFC。) 希望更清楚地说: class-MyClass { 公共函数 { 返回“你好
\uuu toString()
让我们告诉PHP在假定字符串的情况下如何处理实例(例如print()
)。我还没有找到布尔函数的这种能力(例如,if($instance){}
)。有这样的东西吗?甚至像ArrayAccess
这样的接口class-MyClass
{
公共函数
{
返回“你好,世界!”;
}
//我很确定的是,愿望不存在,
//即使是通过一个接口,而不是一个神奇的方法。
公共功能
{
返回false;
}
}
$instance=newmyclass();
打印$instance;//你好,世界!
如果($实例){
打印“有效实例始终为真”;
}
$cast=(bool)$instance;
打印($cast)?“真”:“假”;//应该是假的。但这是真的
主要问题不是如何将布尔值转换为字符串。相反,最好将其表述为如何告诉PHP在将我的类的实例强制转换为bool
(?)时应该做什么
[更新]:查看并讨论RFC-
echo$foo?“真’:‘假’代码>没有删掉它吗?嘿@Phil-我不同意这个结论,我已经补充了这个问题。谢谢你的链接。@ceejayoz-见问题的澄清。“我希望这不会增加混乱。”我明白了。重新打开echo$foo?“真’:‘假’代码>没有删掉它吗?嘿@Phil-我不同意这个结论,我已经补充了这个问题。谢谢你的链接。@ceejayoz-见问题的澄清。“我希望这不会增加混乱。”我明白了。重新打开