【问题标题】:Can I do an IF statement / Ternary Operator within an <img src' ' >?我可以在 <img src' ' > 中执行 IF 语句/三元运算符吗?
【发布时间】:2020-09-17 00:58:59
【问题描述】:

好的,我知道这可能看起来有点不对劲,但我正在尝试实现一个解决方案,其中仅当图像 URL 有效且存在时才使用图像 URL。

$imglink = URL . 'public/uploads/profile/' . $value['image'];  //valid to be used if image exists
$defaultLink = URL . 'public/images/profile-img.jpg';   // To be used if $imglink is not available

我试过的是:

$loki = $imglink ? $imglink : $defaultLink;

$imageURL = "<img src='$loki'  width='120px' height='120px' style='border-radius: 50%; border: 2px solid #edf9f3'/>";

也试过这个:

$imageURL = "<img src='<?php echo $imglink ? $imglink : $defaultLink />'  width='120px' height='120px' style='border-radius: 50%; border: 2px solid #edf9f3'/>";

我尝试过使用不同的方法,但它不起作用。此外,这是在 Codeigniter 控制器文件中完成的。

【问题讨论】:

  • 不,你不能在 string 中使用if。不,您也不能在字符串的 inside 中再次使用&lt;?php … ?&gt;。您可以通过几个步骤来执行此操作 - 分配字符串的第一部分,然后执行实际的 if/else,在其中将更多内容附加到字符串变量的末尾,然后再添加其余部分;或者您可以直接在字符串连接语句中使用 三元运算符
  • 我可能没有明确说明什么不起作用。嗯,语句没有在 内执行
  • @CBroe 我很欣赏这个想法,但是,你能给我举个三元和字符串连接的例子吗?
  • @Astrildz 您的第二个 sn-p 应该可以工作,因为 $imglink$defaultLink 实际上包含您认为他们所做的事情。

标签: php codeigniter


【解决方案1】:

您可以先检查三元运算符中的值,然后正确分配它-

// check if $value['image'] is set and not empty; assign value accordingly.
$img = ( !empty($value['image']) ) ? ( URL . 'public/uploads/profile/' . $value['image'] ) : ( URL . 'public/images/profile-img.jpg' );

// give that value in src of img tag
$imageURL = "<img src='" .$img. "'  width='120px' height='120px' style='border-radius: 50%; border: 2px solid #edf9f3'/>";

看看对你有没有帮助。 :)

【讨论】:

  • 你不需要isset()!empty()。只需使用empty() 函数就足够了。 - 不是我的反对票。
猜你喜欢
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 2018-12-08
  • 2018-12-26
  • 1970-01-01
  • 2021-07-22
  • 2016-04-12
  • 1970-01-01
相关资源
最近更新 更多