php - 如何从 __callStatic() 方法中提取 $parameters 数组,以便使用 __ToString() 方法进一步转换为字符串?
问题描述
class Concatenator
{
private static $string = [];
public static function __callStatic($method, $parameters)
{
self::$string = $parameters;
}
public function __toString()
{
return str_replace(' ', '+', strtolower(self::$string));
}
}
$concatenated = Concatenator::prepareString('I am concatenated');
echo $concatenated;
我不知道如何将值从魔法__callStatic()
方法传递给魔法__toString()
。
请告诉我代码有什么问题?为什么__toString()
看不见self::$string
?
解决方案
$string
是一个array
,不是一个String
:
private static $string = [];
所以你不能把它自己传递给strtolower
它。您可能希望将其初始化更改为String
:
private static $string = "";
$parameters
并作为String
值而不是数组传递。或者,如果拥有一个 是正确的array
,那么您将需要使用它的正确索引。
推荐阅读
- java - java - 如何在Java中使用字符串的内容作为类构造函数的对象名称,我可以多次使用一个类的对象吗?
- css - 如何在顺风时做出响应式溢出
- php - 如何使用查询生成器将原始子查询转换为 laravel 查询?
- php - PHP - 多个条件的测试数组
- docker - 在heroku中使用sqlite数据库
- nginx - 匹配 nginx 的位置前缀不适用于变量
- c# - 如何使用 selenium 绕过 cloudflare
- flutter - 如何使用rootBundle在flutter中加载配置
- android - 片段不使用 FragmentContainerView 切换
- memory - Common Lisp 中的对象内存布局