5

PHP 太坑了,一直走下坡路不是没有原因的

 1 year ago
source link: https://www.v2ex.com/t/970827
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  编程

PHP 太坑了,一直走下坡路不是没有原因的

  richangfan · 10 小时 43 分钟前 · 1704 次点击
echo strlen('\r\n'); //输出 4
echo strlen("\r\n"); //输出 2

就因为上面的区别,导致生成的邮件一直发不出去

43 条回复    2023-09-05 02:21:33 +08:00
php01

php01      10 小时 37 分钟前

地球有时候确实没引力,能够理解的。
garlics

garlics      10 小时 36 分钟前   ❤️ 1

双引号里面内容转义,单引号里面内容不转义,这个基础的语法你都不知道吗?
hahasong

hahasong      10 小时 34 分钟前   ❤️ 7

怡笑大方,用 PHP 的半吊子太多了能不走下坡路吗
OceanBreeze

OceanBreeze      10 小时 33 分钟前   ❤️ 3

典型的拉不出屎怪茅坑。
InDom

InDom      10 小时 32 分钟前

确实,怪不得觉得太坑了。
brader

brader      10 小时 30 分钟前   ❤️ 1

敢问楼主用的是 PHPSTORM 吗?是的话我相信你应该看到了这两个写法很明显的高亮颜色区别,单引号的时候,\都解析为字符串了,编辑器也是用的黄色高亮。双引号的时候,\r 是整体的,编辑器都高亮别的颜色了,和其他字符串都很明显的区别
demoshengxw

demoshengxw      10 小时 29 分钟前

那你需要先了解下单引号和双引号的区别。在你的代码中双引号包裹的最终对应的一个换行符序列,单引号包裹就完全当成字符串。
mrgeneral

mrgeneral      10 小时 28 分钟前   ❤️ 2

本山:怎么你到哪儿,哪都大环境不好,你是破坏大环境的人啊?
sarices

sarices      10 小时 28 分钟前

哈,今天最大的笑话,出现问题应该找下原因,知道原因了你就不会发帖了。
ldx78203199

ldx78203199      10 小时 26 分钟前   ❤️ 1

这跟语言啥关系。。虽然我是搞 java 的 但是这个明显是自己问题,计算机世界 别说 2 个引号不同,你多个空格都可能是巨大的变化
richangfan

richangfan      10 小时 25 分钟前

@garlics
要求程序输入什么就输出什么,不做多余的事很过分吗?
下面 Golang 的代码就老老实实输出 2
```
fmt.Println(len("\r\n"))
```
fkdtz

fkdtz      10 小时 21 分钟前   ❤️ 2

哈哈哈哈,没想到楼主又是你,你这一天可太欢乐了。
参考楼主之前的帖子:“吃铜炉火锅被烫,所以建议不要吃铜炉火锅。”
哈哈哈哈,我感觉楼主你把论坛玩明白了。
😋 😋 😋
QlanQ

QlanQ      10 小时 18 分钟前

哎,你是专门来黑 PHP 的吧
ochatokori

ochatokori      10 小时 16 分钟前 via Android

朋友,来写 nodejs 吧,就没有这个问题了🐶
1423

1423      10 小时 16 分钟前

楼主似乎在探索一种新型的吸引眼球的发帖方法
弱智+反转+装傻

屡试不爽,人类真是脆弱,遇到这种帖子就忍不住点进来骂一句 SB
cin

cin      10 小时 16 分钟前   ❤️ 6

#11 @richangfan 那你觉得下面这两输出一样吗

```
fmt.Println(len("\r\n"))
fmt.Println(len(`\r\n`))
```
Rache1

Rache1      9 小时 32 分钟前

要是说这个在 PHP 文档藏得深的话,也就不说你了,可是这个就在字符串章节的第一段

mFQpyIw.png


PHP: String 字符串 - Manual
https://www.php.net/manual/zh/language.types.string.php
spicy777

spicy777      9 小时 31 分钟前   ❤️ 3

8osAOdT.jpg
sheeta

sheeta      9 小时 22 分钟前

连单引号与双引号的区别都不知道,别跟别人说你是写 PHP 的
wonderfulcxm

wonderfulcxm      9 小时 20 分钟前

自己基础不过关还怪语言,贻笑大方了,哈哈
wonderfulcxm

wonderfulcxm      9 小时 18 分钟前   ❤️ 1

@fkdtz 难怪,原来是一天吃一顿,而且只吃铜炉火锅的那个。。。
hefish

hefish      9 小时 12 分钟前

op 自己赶紧反思一下,毕竟 php 是世界上最好的语言。。。
能把微服务搞好,就完美了。
BGLL

BGLL      9 小时 9 分钟前

这个是 unix 的特性,很多语言也这样如 Perl, Dart
dobelee

dobelee      9 小时 5 分钟前

你知道 php 为什么走下坡路?就是这样的半吊子太多了。
sytnishizuiai

sytnishizuiai      9 小时 3 分钟前

大哥,换个语言黑行不行
kakki

kakki      9 小时 2 分钟前 via Android

。。。我还以为你有什么 PL 方面的见解。
InkAndBanner

InkAndBanner      8 小时 55 分钟前

已打钓鱼 tag ,感觉在刻意装蠢污染论坛
emeab

emeab      8 小时 51 分钟前

来点 JS 笑话
```
"foo" + +"bar"; // -> 'fooNaN'
!!"false" == !!"true"; // -> true
!!"false" === !!"true"; // -> true
NaN === NaN; // -> false
```
Felldeadbird

Felldeadbird      8 小时 4 分钟前

楼主闹笑话了。
lincanbin

lincanbin      7 小时 59 分钟前

这种一种叫“raw string literal”的语法糖,除了 php ,其他语言也有。
可能是类似``或者"""""",当然,在 php 下是用''
wellerman

wellerman      7 小时 51 分钟前

这不不亚于之前在 V2 上看到的“时间戳分本地时间戳和国际时间戳”
adoal

adoal      7 小时 42 分钟前

unix shell 也是这样的习惯
linwuhi

linwuhi      7 小时 29 分钟前

我是楼主 我都没有自信再来 v2 了
zhaokun

zhaokun      7 小时 26 分钟前

@richangfan 不让 go 写个单引号试试?
BigShot404

BigShot404      6 小时 58 分钟前

楼主但凡你会百度,都不至于说出这个笑话
Oceanhime

Oceanhime      6 小时 33 分钟前

引战行为,话说楼主是研究了两天怎么发邮件吗?
guanhui07

guanhui07      6 小时 31 分钟前

自己基础不过关还怪语言,贻笑大方了
Immortal

Immortal      6 小时 6 分钟前

根据大家评论翻了下 op 的历史发帖
欢乐加倍
jevonszmx

jevonszmx      3 小时 35 分钟前

单引号和双引号的使用是 php 最最最基础的一部分了
haha512

haha512      3 小时 31 分钟前

php 全身都是可吐槽的槽点,OP 却偏偏避开了所有槽点(O(∩_∩)O~
Dart

Dart      2 小时 43 分钟前

不知道为啥还用这个。不是用 PHP_EOL ?
akira

akira      2 小时 42 分钟前

等下,字符串长度和 邮件发不出去有啥关系
richangfan

richangfan      1 小时 37 分钟前

@Dart @akira
Gmail 的 PHP SDK 没提供生成邮件的接口,要自己做,邮件里面的换行符跟 HTTP 一样是`\r\n`

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK