为什么我们使用end函数?

时间:2013-07-27 11:08:41

标签: php

为什么我们使用$ extension = end($ temp);在这段代码?这究竟是做什么的

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))

3 个答案:

答案 0 :(得分:2)

此示例使用end()函数检索$ temp数组的最后一个元素。最后一个元素包含文件名的扩展名。 http://php.net/manual/en/function.end.php

答案 1 :(得分:1)

正如Märis告诉你它获取数组的最后一个元素,在文件名的情况下是文件扩展名(或将是最多的时间)

在最后一行检查扩展名是否为$ allowedExts。

之一

但它是冗余检查,文件类型的检查是因为。

答案 2 :(得分:1)

end() 将数组的内部指针前进到最后一个元素,并返回其值。

它不会返回值。它需要一个&reference参数,它也会移动内部数组指针。 next()之后没有end()。只有current()reset()