【问题标题】:How type ignorance is internally implemented in PHPPHP 内部如何实现类型忽略
【发布时间】:2012-01-03 20:36:51
【问题描述】:

如何在 PHP 中实现类型忽略?比如我可以写函数:

function min($n, $m){
   if ($n<$m) return $n;
   return $m;
}

然后,我可以对整数、实数甚至字符串无差别地使用该函数。我相信这是可能的,因为 PHP 传递的是指针而不是真正的变量(或对变量的引用)。我对吗?有人可以给我指出一个关于 PHP 内部实现的好讲座或一个很好的解释吗?

我应该补充一点,我对 PHP 解释器的工作方式非常感兴趣。感谢到目前为止提供的答案。

【问题讨论】:

  • PHP 没有指针。只有“引用”,它们与指针相似但不同。 PHP 还可以按需进行静默类型转换,从而减少在大多数情况下了解某事物是什么类型的需要。 “它只是(通常)有效”

标签: php internals


【解决方案1】:

因为 PHP 是动态的。在 PHP 中,事物是按值传递的。它被称为鸭子打字。

http://en.wikipedia.org/wiki/Duck_typing#In_PHP

【讨论】:

    【解决方案2】:

    默认情况下,PHP 按值传递变量,而不是按引用传递。可以通过将function min($n,$m) 更改为function min(&amp;$n, &amp;$m) 来通过引用传递。有关传递引用的更多信息,请查看this link on the PHP manual

    这也可能对你有帮助:http://php.net/manual/en/language.variables.scope.php

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 1970-01-01
      • 2011-12-21
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      相关资源
      最近更新 更多