PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

软件和网站开发以及相关技术探讨
回复
头像
billzt
帖子: 1666
注册时间: 2010-05-23 20:44
系统: Ubuntu
联系:

PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#1

帖子 billzt » 2012-12-17 20:39

这是一段PHP代码:

代码: 全选

    if ($row['approved'] == '0') {
      echo ' / <a href="approvescore.php?id=' . $row['id'] . '&date=' . $row['date'] .
        '&name=' . $row['name'] . '&score=' . $row['score'] . '&screenshot=' .
        $row['screenshot'] . '">Approve</a>';
    }

里面又是单引号又是双引号,太乱了。像 Perl 里面可以用 qq{} 来代替双引号或者 q{} 来代替单引号,php 有什么好办法没?
师大生信者:http://bnuzhutao.cn
头像
iamfbi
帖子: 1081
注册时间: 2009-02-06 9:18
来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#2

帖子 iamfbi » 2012-12-17 21:26

用写代码专用的工具就很好阅读了。。比如Sublime Text 2...
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记
头像
billzt
帖子: 1666
注册时间: 2010-05-23 20:44
系统: Ubuntu
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#3

帖子 billzt » 2012-12-17 21:30

iamfbi 写了:用写代码专用的工具就很好阅读了。。比如Sublime Text 2...
额,貌似这个治标不治本
师大生信者:http://bnuzhutao.cn
头像
mjp123
帖子: 702
注册时间: 2009-04-09 15:06

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#4

帖子 mjp123 » 2012-12-17 21:37

用sprintf.
头像
billzt
帖子: 1666
注册时间: 2010-05-23 20:44
系统: Ubuntu
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#5

帖子 billzt » 2012-12-17 21:38

mjp123 写了:用sprintf.
求指教,貌似我这本书上没说
师大生信者:http://bnuzhutao.cn
头像
mjp123
帖子: 702
注册时间: 2009-04-09 15:06

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#6

帖子 mjp123 » 2012-12-17 21:48

[php]$fmt= '<a href="approvescore.php?id=%s&date=%s&name=%s&score=%s&screenshot=%s">Approve</a>';
echo sprintf($fmt,$row['id'],$row['date'] ,$row['name'],$row['score'],$row['screenshot']);[/php]
头像
billzt
帖子: 1666
注册时间: 2010-05-23 20:44
系统: Ubuntu
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#7

帖子 billzt » 2012-12-18 8:05

mjp123 写了:[php]$fmt= '<a href="approvescore.php?id=%s&date=%s&name=%s&score=%s&screenshot=%s">Approve</a>';
echo sprintf($fmt,$row['id'],$row['date'] ,$row['name'],$row['score'],$row['screenshot']);[/php]
谢谢!这一招看起来挺不错哈
师大生信者:http://bnuzhutao.cn
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#8

帖子 jarlyyn » 2012-12-18 10:01

其实用strtr更好,更接近模板,嗯嗯

主要是如果要添加某些变量,比如给这个链接加上class,会比sprintf容易维护的多。
具体可以参照yii的t 翻译函数。
头像
billzt
帖子: 1666
注册时间: 2010-05-23 20:44
系统: Ubuntu
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#9

帖子 billzt » 2012-12-18 13:31

jarlyyn 写了:其实用strtr更好,更接近模板,嗯嗯

主要是如果要添加某些变量,比如给这个链接加上class,会比sprintf容易维护的多。
具体可以参照yii的t 翻译函数。
你最好也像上楼那样举个例子嘛
师大生信者:http://bnuzhutao.cn
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#10

帖子 jarlyyn » 2012-12-18 13:39

$fmt= '<a href="approvescore.php?id={id}&date={date}&name={name}&score={score}&screenshot={screenshoot}">Approve</a>';
echo strtr($fmt,array(
'{id}'=>$row['id'],
'{date}'=>$row['date'],
'{name}'=>$row['name'],
'{score}'=>$row['score'],
'{screenshot}'=>$row['screenshot']
));
头像
iamfbi
帖子: 1081
注册时间: 2009-02-06 9:18
来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#11

帖子 iamfbi » 2012-12-18 21:42

jarlyyn 写了:$fmt= '<a href="approvescore.php?id={id}&date={date}&name={name}&score={score}&screenshot={screenshoot}">Approve</a>';
echo strtr($fmt,array(
'{id}'=>$row['id'],
'{date}'=>$row['date'],
'{name}'=>$row['name'],
'{score}'=>$row['score'],
'{screenshot}'=>$row['screenshot']
));
这个昨说呢。。我觉得代码的原则是越精简越好。。。为了好看点,把代码写得更复杂。。我觉得没必要,这叫代码冗余。。。
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记
头像
iamfbi
帖子: 1081
注册时间: 2009-02-06 9:18
来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#12

帖子 iamfbi » 2012-12-18 21:57

不好意思,我对PHP代码不熟。。。所以,请教下。。其实LZ那代码是不是可以写成这样?我觉得似乎是可以的。。不太确定。。。

代码: 全选

echo " / <a href=\"approvescore.php?id=$row['id']&date=$row['date']&name=$row['name']&score=$row['score']&screenshot=$row['screenshot']\">Approve</a>";
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#13

帖子 jarlyyn » 2012-12-18 22:17

iamfbi 写了:
jarlyyn 写了:$fmt= '<a href="approvescore.php?id={id}&date={date}&name={name}&score={score}&screenshot={screenshoot}">Approve</a>';
echo strtr($fmt,array(
'{id}'=>$row['id'],
'{date}'=>$row['date'],
'{name}'=>$row['name'],
'{score}'=>$row['score'],
'{screenshot}'=>$row['screenshot']
));
这个昨说呢。。我觉得代码的原则是越精简越好。。。为了好看点,把代码写得更复杂。。我觉得没必要,这叫代码冗余。。。
为了可维护性。

好的代码可以不需要注释。
头像
chinaspc
帖子: 3
注册时间: 2012-11-09 10:22
系统: ub

Re: PHP echo 输出 HTML 时,代码中单引号和双引号混在一起,难以阅读

#14

帖子 chinaspc » 2013-01-03 22:27

跑过去呵呵
回复