Php 如何从\uuuCallStatic()方法提取$parameters数组,以便使用\uuuToString()方法进一步转换为字符串?
我不知道如何将值从magicPhp 如何从\uuuCallStatic()方法提取$parameters数组,以便使用\uuuToString()方法进一步转换为字符串?,php,class,static,public,self,Php,Class,Static,Public,Self,我不知道如何将值从magic\uu callStatic()方法传递到magic\uu toString() 请告诉我代码有什么问题?为什么不\uuu toString()参见self::$string?$string是一个数组,而不是字符串: class Concatenator { private static $string = []; public static function __callStatic($method, $parameters) {
\uu callStatic()
方法传递到magic\uu toString()
请告诉我代码有什么问题?为什么不
\uuu toString()
参见self::$string
?$string
是一个数组,而不是字符串
:
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;
private static $string = [];
因此,您不能单独将其传递给strtolower
。您可能希望将其初始化更改为String
:
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;
private static $string = [];
并将$parameters
作为字符串
值而不是数组传递。或者,如果使用数组是正确的,则需要使用其适当的索引