有没有办法告诉PHP如何将对象转换为int?理想情况下,它看起来像
class ExampleClass
{
...
public function __toString()
{
return $this->getName();
}
public function __toInt()
{
return $this->getId();
}
}
Run Code Online (Sandbox Code Playgroud)
我意识到它不支持这种确切的形式,但有一个简单(不那么hacky)的解决方法吗?
----------------------编辑编辑编辑------------------------- ----
谢谢大家!我正在研究的主要原因是我想制作一些类(表单生成器,菜单类等)使用对象而不是数组(uniqueId => description).如果您认为它们只应该与这些对象一起使用,或者只对那些扩展某种通用对象超类的对象起作用,那么这很容易.
但我试图看看是否存在中间道路:理想情况下,我的框架类可以接受整数字符串对,或者接受带有getId()和getDescription()方法的对象.因为在我想使用stackoverflow的综合知识来确定是否有一种标准/最佳实践方法与php标准库不冲突之前,这是其他人必须要发生的事情,所以框架等.
我担心没有这样的事情.我不确定你需要这个的原因是什么,但请考虑以下选项:
添加一个toInt()方法,在类中强制转换.你可能已经意识到了这一点.
public function toInt()
{
return (int) $this->__toString();
}
Run Code Online (Sandbox Code Playgroud)
在类外部进行双重转换,将导致int.
$int = (int) (string) $class;
Run Code Online (Sandbox Code Playgroud)
在课外做一个特殊的功能:
function intify($class)
{
return (int) (string) $class;
}
$int = intify($class);
Run Code Online (Sandbox Code Playgroud)
当然__toString()方法可以返回一个带有数字的字符串:toInt()
.类外部的用法可能会将此字符串自动转换为整数.
归档时间: |
|
查看次数: |
5388 次 |
最近记录: |