我正在尝试检查文件扩展名。为此,我创建了一个函数,但它没有返回任何值。我真不知道我错在哪里。下面是代码:
function checkType($name){
$farray = explode('.',$name);
$fname = trim($farray[0]);
$fext = trim($farray[1]);
echo $fext;
return $fext;
}
我调用这个函数的代码是:
$filename = "IMG_3552.JPG";
echo $filename;
checkType($filename);
echo "File Extension is : ". $fext;
运行时回显如下:IMG_3552.JPG
文件扩展名:
请帮忙??
您正在尝试访问函数范围内的变量。
你从函数返回一个值,而不是变量本身,所以函数就是这个值。
这是你应该做的。
$filename = "IMG_3552.JPG";
echo $filename;
$fext = checkType($filename);
echo "File Extension is : ". $fext;
也可以像这样使用PATHINFO_EXTENSION
检索文件的扩展名…
function checkType($name){
$fext = pathinfo($name, PATHINFO_EXTENSION);
return $fext;
}
你的函数返回一个值。
您必须在使用变量之前捕获该返回值。因为$fext
只在你的函数中可用。
如果有,
$fext = checkType($filename);
echo "File Extension is : ". $fext;
试试这个
<?php
function checkType($name){
$farray = explode('.',$name);
$fname = trim($farray[0]);
$fext = trim($farray[1]);
echo $fext;
return $fext;
}
$filename = "IMG_3552.JPG";
echo $filename;
$fext = checkType($filename);
echo "File Extension is : ". $fext;
?>
变量$ text是一个作用域变量,不能在函数之外使用。试着得到函数在其他变量中的返回值,并把它写下来。
$filename = "IMG_3552.JPG";
$result = checkType($filename);
echo "Result: " . $result;
还有一件事我想澄清,为什么你不能使用pathinfo来获取文件扩展名?当您编写代码时,假设您有这样一个文件,该文件以dot(.)命名,那么您的逻辑将无法工作。例如,假设你有一个名为:'IMG.3552.jpg'的文件,而你的代码不工作,因为你使用爆炸和使用1'键的结果。所以它会给你3552而不是jpg。
我更喜欢用
$ext = pathinfo($filename, PATHINFO_EXTENSION);
您有一个计算扩展的function
,但是您的function
中的$fext
变量是本地的,因此它不存在于您尝试使用它的function
之外。为了能够使用它,返回值并初始化它,如下所示:
function checktype( $name ){
return pathinfo( $name, PATHINFO_EXTENSION );
}
$name='IMG_3552.JPG';
$fext=checktype( $name );