我有一个if
语句,用于验证<img>
标记何时缺少尺寸(width
/ height
)或是否为空(width=""
/ { {1}}),例如:
height=""
以下<img src="https://placehold.it/100x50" alt="Blank width/height" width="" height="">
<img src="https://placehold.it/100x50" alt="Blank width" width="">
<img src="https://placehold.it/100x50" alt="Blank height" height="">
<img src="https://placehold.it/100x50" alt="No width/height">
声明对我有用。但是,我想知道是否可以简化我在下面使用的逻辑。 Here's the link to the full source code
if
答案 0 :(得分:0)
$search = ['width','height'];
foreach ($search as $value) {
if(!in_array($value, $img[1]) || (in_array($value, $img[1]) && in_array('""', $img[2])) {
// code away
}
}
或者您总是可以使用jQuery来检查已定义的元素属性,甚至可以使用css定义宽度和高度,而不是使用内联样式。
答案 1 :(得分:0)
是,导出函数中的所有检查,在其中检查每个条件并返回相应的值。俗话说:
提前失败,快速失败
if(illegalImage($img)) {
// Code here ...
}
private function illegalImage(array $imgData) {
// check the array since we're in a validation function, so be thorough
if (count($imgData) < 3) { // or whatever check makes sense here
return true;
}
if (!in_array('width', $imgData[1])) {
return true;
}
if (!in_array('height', $imgData[1])) {
return true;
}
/* you'd have failed earlier if 'width' or 'height' was missing
* so no need of complicated boolean expressions here
*/
if (in_array('""', $img[2])) {
return true;
}
return false;
}
答案 2 :(得分:0)
通过执行以下操作,我能够简化逻辑:
if ( ! in_array( 'width|height', $img[1] ) || in_array( '""', $img[2] ) ) {
# Code here...
}