我正在尝试检查文件扩展名。为此,我创建了一个函数,但它没有返回任何值。我真的无法弄清楚我错在哪里。以下是代码:
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
文件扩展名为:
请帮忙??
答案 0 :(得分:0)
您正在尝试访问函数范围内的变量。
您正在从函数返回一个值而不是变量本身,因此该函数是值。
这就是你应该做的。
$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;
}
答案 1 :(得分:0)
您的函数返回一个值。
在使用变量之前,必须将该返回值捕获到变量中。由于$fext
仅适用于您的功能。
如果你这样做,
$fext = checkType($filename);
echo "File Extension is : ". $fext;
它应该有用。
答案 2 :(得分:0)
您有function
来计算扩展名,但$fext
中的function
变量是本地的,因此它不会出现在您尝试的function
之外用它。为了能够使用它,返回值并初始化它,如下所示:
function checktype( $name ){
return pathinfo( $name, PATHINFO_EXTENSION );
}
$name='IMG_3552.JPG';
$fext=checktype( $name );
答案 3 :(得分:0)
试试这个
<?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;
?>
答案 4 :(得分:0)
您的变量$ fext是一个范围变量,在您的函数之外无法使用。尝试在任何其他变量中获取函数的返回值并记下它。
$filename = "IMG_3552.JPG";
$result = checkType($filename);
echo "Result: " . $result;
我想清楚一件事,为什么你不能使用pathinfo来获取文件扩展名?当您完成代码时,假设您有一个以dot(。)命名的文件,那么您的逻辑将无效。 例如假设您有一个名为:&#39; IMG.3552.jpg&#39;因为你使用explode并使用结果的1&#st;键而不是你的代码不起作用。所以它会给你3552而不是jpg。
我更喜欢使用
$ext = pathinfo($filename, PATHINFO_EXTENSION);