[英]Function php variable unknown
function scale($src) {
$max = 350;
if (!isset($max, $src))
return;
$src = str_replace(" ", "%20", $src[1]);
$info = @getimagesize($src);
$sw = $info[0];
$sh = $info[1];
$addclass = false;
$max_em = 0.06 * $max;
if ($max < max($sw, $sh)) {
if ($sw > $sh)
$new = array($max_em . "em", "auto");
if ($sw < $sh)
$new = array("auto", $max_em . "em");
$addclass = true;
} else
$new = array("auto", "auto");
$id = mt_rand(0000, 9999);
if ($new[0] == "auto" && $new[1] == "auto")
$img = "<img src=\"" . $src . "\" border=\"0\" alt=\"\" />";
else
$img = "<img id=\"r" . $id . "\" border=\"0\" alt=\"\" src=\"" . $src . "\" " . ($addclass ? "class=\"resized\"" : "") . " style=\"width:" . $new[0] . ";height:" . $new[1] . ";\" />";
return $img;
}
我具有此功能来调整图像大小。 它在图像较大时起作用,但是例如当它们为600x600时,我得到注意:未定义的变量:新行
if ($new[0] == "auto" && $new[1] == "auto")
和
$img = "<img id=\"r" . $id . "\" border=\"0\" alt=\"\" src=\"" . $src . "\" " . ($addclass ? "class=\"resized\"" : "") . " style=\"width:" . $new[0] . ";height:" . $new[1] . ";\" />";
对于这种情况,否则$ new应该是$new = array("auto", "auto");
,但无法识别。
看下面的部分,就很清楚了:
if ($max < max($sw, $sh)) {
if ($sw > $sh)
$new = array($max_em . "em", "auto");
if ($sw < $sh)
$new = array("auto", $max_em . "em");
$addclass = true;
} else
$new = array("auto", "auto");
将其转换为值,您将看到..
if ($max < max($sw, $sh)) {
if (600 > 600)
$new = array($max_em . "em", "auto");
if (600 < 600)
$new = array("auto", $max_em . "em");
$addclass = true;
// None of the above ifs meet the case of 600x600 !!!!!
// ----------------------------------------------------
} else
$new = array("auto", "auto");
$ new不会被初始化。 您需要在代码顶部添加新代码。 您所有的if语句都不会满足true,并且$ new永远不会分配变量。 注意:使用变量之前,请确保已初始化变量。
function scale($src) {
$max = 350;
if (!isset($max, $src))
return;
$src = str_replace(" ", "%20", $src[1]);
$info = @getimagesize($src);
$sw = $info[0];
$sh = $info[1];
$addclass = false;
$max_em = 0.06 * $max;
$new = array('auto', 'auto'); //Initialized variable per (Catalin Deaconescu)
if ($max < max($sw, $sh)) {
if ($sw > $sh)
$new = array($max_em . "em", "auto");
if ($sw < $sh)
$new = array("auto", $max_em . "em");
$addclass = true;
} else {
$new = array("auto", "auto");
$id = mt_rand(0000, 9999);
}
if ($new[0] == "auto" && $new[1] == "auto")
$img = "<img src=\"" . $src . "\" border=\"0\" alt=\"\" />";
else
$img = "<img id=\"r" . $id . "\" border=\"0\" alt=\"\" src=\"" . $src . "\" " . ($addclass ? "class=\"resized\"" : "") . " style=\"width:" . $new[0] . ";height:" . $new[1] . ";\" />";
return $img;
}
这里的问题:
if ($sw > $sh)
$new = array($max_em . "em", "auto");
if ($sw < $sh)
$new = array("auto", $max_em . "em");
$ sw == $ sh时您不匹配
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.