php中的echo是否也可以像var_dump一样工作?
我讲的不是php编程,而是php本身。 php的创建者是否可能让echo转储例如数组php中的echo是否也可以像var_dump一样工作?,php,Php,我讲的不是php编程,而是php本身。 php的创建者是否可能让echo转储例如数组 var_dump确实做了什么?对现有功能进行如此彻底的更改将导致大量代码崩溃。所以我会说不 这就是说,这就是我们正在谈论的PHP,所以我不会感到惊讶……对现有功能进行如此彻底的更改将导致大量代码崩溃。所以我会说不 也就是说,这就是我们正在谈论的PHP,所以我不会感到惊讶 php的创建者是否可能像var_dump那样将echo转储到例如数组中 我想您的意思是,如果echo传递了一个不能显示为字符串的变量,则显示一
var_dump确实做了什么?对现有功能进行如此彻底的更改将导致大量代码崩溃。所以我会说不
这就是说,这就是我们正在谈论的PHP,所以我不会感到惊讶……对现有功能进行如此彻底的更改将导致大量代码崩溃。所以我会说不 也就是说,这就是我们正在谈论的PHP,所以我不会感到惊讶 php的创建者是否可能像var_dump那样将echo转储到例如数组中 我想您的意思是,如果
echo
传递了一个不能显示为字符串的变量,则显示一个转储,而不是当前显示其数据类型的行为(例如Array
)
这确实有道理,但也很危险:如果一个对象包含最终用户不应该看到的数据怎么办
我怀疑echo
函数(或者更确切地说,PHP的字符串解析函数)是否会因为这个原因而发生如此彻底的变化
php的创建者是否可能像var_dump那样将echo转储到例如数组中
我想您的意思是,如果echo
传递了一个不能显示为字符串的变量,则显示一个转储,而不是当前显示其数据类型的行为(例如Array
)
这确实有道理,但也很危险:如果一个对象包含最终用户不应该看到的数据怎么办
我怀疑
echo
函数(或者更确切地说,PHP的字符串解析函数)是否会因为这个原因而发生如此彻底的变化 在php中,您可以创建一个像数组一样行走、像数组一样嘎嘎作响的对象,但它仍然是一个具有可自定义的\uuu-toString方法的对象
class ary implements ArrayAccess
{
function __construct() {
$this->a = func_get_args();
}
function offsetExists($k) {
return isset($this->a[$k]);
}
function offsetGet($k) {
return $this->a[$k];
}
function offsetSet($k, $v) {
$this->a[$k] = $v;
}
function offsetUnset($k) {
unset($this->a[$k]);
}
function __toString() {
return implode(', ', $this->a);
}
}
$a = new ary(11, 22, 33);
$a[1] = 66;
echo $a;
当然,最好是数组已经是其他语言中的普通对象,但我认为这不会在最近的将来发生。在php中,您可以创建一个像数组一样行走、像数组一样嘎嘎作响的对象,但它仍然是一个具有可自定义的u-toString方法的对象
class ary implements ArrayAccess
{
function __construct() {
$this->a = func_get_args();
}
function offsetExists($k) {
return isset($this->a[$k]);
}
function offsetGet($k) {
return $this->a[$k];
}
function offsetSet($k, $v) {
$this->a[$k] = $v;
}
function offsetUnset($k) {
unset($this->a[$k]);
}
function __toString() {
return implode(', ', $this->a);
}
}
$a = new ary(11, 22, 33);
$a[1] = 66;
echo $a;
当然,最好是数组已经是其他语言中的普通对象,但我认为这不会在最近的将来发生。如果已经有了合适的函数,为什么要这样做呢,也就是说,
var_dump
?为什么var_dump和print_r都存在就是为了做到这一点?将echo更改为与var_dump()相同会破坏许多现有的PHP代码,只留下print(printf等)对于显示变量值而不是变量信息,原因是更容易编码。如果已经有一个合适的函数,即var\u dump
,为什么要显示变量值呢?当var\u dump和print\r都存在时,为什么要这样做?将echo更改为与var\u dump()相同会破坏许多现有的PHP代码,只留下print(printf等)对于显示变量值而不是变量信息,原因是更容易编码。什么?PHP倾向于延迟很多向后兼容性。即使这是一场灾难,register\u globals
仍然可用。如果您想要大量向后兼容性中断,请参阅python。什么?PHP倾向于延迟很多向后兼容性可扩展性。即使这是一场灾难,register\u globals
仍然可用。如果您想要大量的向后兼容性中断,请参阅python。@我说的是向后兼容性。将输出从array
更改为完全变量转储将是一个根本性的改变。是的。如果无法显示varaible,则转储。向后的兼容性将是我没有想到的问题。@我说的是向后兼容性。将输出从array
更改为完全变量转储将是一个根本性的改变。是的。如果变量无法显示,则转储。向后兼容性将是我没有想到的问题。