我现在有这个类的字符串(类型提示,因为它很有趣):
/**
* A String class for string type hinting in functions
*/
class string {
/**
* The value
* @var string
*/
public $string;
/**
* makes a string out of a string... georgous..
* @param string $string
*/
public function __construct($string) {
if(!is_string($string)):
return false;
endif;
$this->string = new self($string);
}
/**
* magic toString method ;)
* @return string
*/
public function __toString() {
return $this->string;
}
/**
* Serializer
* @return array
*/
public function __sleep() {
return ['string'];
}
/**
* array maker
* @return array
*/
public function toArray() {
return [$this->string];
}
/**
* split a string
* @return string[]
*/
public function splitstr() {
return explode("", $this->string);
}
}
当我$this->string = new self($string);
时,PHP应该创建一个永无止境的递归。这将是:
new string("test) {
$string = new string("test") {
$string = new string("test") {
$string = new string("test") ... AND SO ON FOREVER
}
}
}
现在我的问题: 为什么PHP在执行时会重置网络连接(PHP和Apache2)?
答案 0 :(得分:1)
/**
* makes a string out of a string... georgous..
* @param string $string
*/
public function __construct($string) {
if(!is_string($string)):
return false;
endif;
$this->string = new self($string);
}
是无穷无尽的
你可以尝试
!self::$string AND self::$string = new self($string);
但我不会在这里帮忙。
为什么首先要做new self()
查找PHP中一个类的单实例意味着什么。这是你在PHP中new self()
唯一需要的方式。
并且代码中没有type hinting
class A {
function typeHintingFunction(string $sting){
}
}
explode($this->string);
错过了一个参数
霍尔斯帮助了一点