Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中创建自然字符串类_Php_String_Oop - Fatal编程技术网

如何在PHP中创建自然字符串类

如何在PHP中创建自然字符串类,php,string,oop,Php,String,Oop,海。我在做这个简单的字符串类,想知道是否有一种更自然的方法 class Str{ function __construct($str){ $this->value = $str; $this->length = strlen($str); .. } function __toString(){ return $this->value; } .. } 所以现在我必须这样使用

海。我在做这个简单的字符串类,想知道是否有一种更自然的方法

class Str{
    function __construct($str){
        $this->value = $str;
        $this->length = strlen($str);
        ..
    }

    function __toString(){
        return $this->value;
    }
    ..
}
所以现在我必须这样使用它:

$str = new Str('hello kitty');
echo $str;
但用括号表示,这看起来不太“自然”。所以我想知道这样或类似的事情是否可能

$str = new Str 'hello kitty'; # I dont believe this is possible although this is preferred.

$str = new Str; # get rid of the construct param.
$str = 'value here'; #instead of resetting, set 'value here' to Str::$value??

在第二种方法中,是否有一种方法可以再次捕获变量bing集,而不是重置它,将其设置为Str::$value?我已经考虑过了,我能想到的最接近的方法是u destruct方法。但无法知道它是如何被摧毁的。这是可能的还是我在浪费时间?

我不敢告诉你,这两种情况你都不走运。
$str=newstr'hellokitty'
将以致命错误结束,尽管第二个方法有效,但它不会执行您想要的操作,而是重新分配本机字符串

我可以问一下为什么你想要一个本地类型的包装器吗

  • 在PHP中,如果没有括号,调用函数是不可能的
  • 您的下一个方法将更改对字符串的引用
  • 为什么你觉得不自然?在Java中也是如此

    您可能会发现这很有用:


    因为PHP是松散类型的,所以没有自然字符串类,因为使用字符串的自然方式是,仅仅使用它们。但是,从PHP5.3开始,SPL中有一个扩展提供了强类型标量:

    但是,请记住,此扩展标记为实验性的,可能会发生变化。到目前为止,它在Windows上也不可用

    你可能也想试试

    此扩展实现了注册一个类的功能,该类处理对特定基元类型(字符串、数组等)的方法调用。因此,它允许实现像$str->length()这样的API

    另见:


    好的弦乐课

    你在浪费时间。:-)您所做的基本上是一个包装器类。Java中的一个不同之处是自动装箱(字符串被自动视为字符串),这是一种语言特性。你在这里要做的就是修改语法。是的。。这两件事我都不走运,因此我提出了这个问题。我对使我的脚本有点强类型感兴趣。。字符串应该是字符串,而不是脚本中间的整数。