Существует очень мало причины типа значения для реализации интерфейса. Так как Вы не можете разделить тип значения на подклассы, можно всегда называть его его конкретным типом.
, Если, конечно, у Вас нет нескольких структур вся реализация того же интерфейса, это могло бы быть незначительно полезно тогда, но в той точке я рекомендую использовать класс и сделать его правильно.
, Конечно, путем реализации интерфейса, Вы упаковываете структуру, таким образом, она теперь находится на "куче", и Вы не будете в состоянии передать ее значением больше... Это действительно укрепляет мое мнение, что необходимо просто использовать класс в этой ситуации.
вы можете использовать stristr для этого:
$foo = stristr($foo,":",true);
, где true дает вам все до первого экземпляра ":"
В качестве альтернативы list () вы можете использовать array_shift ()
$foo = array_shift(explode(':', $foo));
Да, это можно сделать, используя список
:
list($foo) = explode(":", $foo);