入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

谈一谈array_pop和end有什么差别?

创建时间:2017-07-25 投稿人: 浏览次数:112

从功能上看,array_pop和end都是可以得到数组的最后一个元素,但是这只是他们一样的地方。其实,他们的本质是不大一样的,我们来看下厦门的案例:

<?php
    $array = array("php","linux","java","python");
    echo "end demo:";
    var_dump(end($array));
    var_dump($array);
    echo "array_pop demo:";
    var_dump(array_pop($array));
    var_dump($array);

end demo:
string "python" (length=6)
array (size=4)
  0 => string "php" (length=3)
  1 => string "linux" (length=5)
  2 => string "java" (length=4)
  3 => string "python" (length=6)
array_pop demo:
string "python" (length=6)
array (size=3)
  0 => string "php" (length=3)
  1 => string "linux" (length=5)
  2 => string "java" (length=4)

从运行结果分析可知,end — 将数组的内部指针指向最后一个单元,但是原数组并没有发生任何变化,长度不变,array_pop — 将数组最后一个单元弹出(出栈),既然一个元素出栈了,那数组的长度自然就减一了啊,并且此函数会重置数组的指针。可以换个角度来理解,end是为了获得数组的最后一个元素,而array_pop是为了删除数组的最后一个元素。

下面两个图展示了根据上面的示例代码执行时数组元素和内部指针的变化的效果图:

end:


array_pop:


结束语:因为本人能力有限,文中若有不正之处,万望告知。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。