标签: nowdoc

在php中heredoc vs nowdoc的优点/不便

作为一个新手,我被建议最好使用heredoc与太多嵌套代码相比(参见php代码中的意外T_ELSE).

但我无法理解heredoc和nowdoc之间是否存在显着差异.

与另一个对新手理解很重要的东西(即不是很小的优点但对我理解很重要)相比,heredoc和nowdoc有什么优势.

php heredoc nowdoc

41
推荐指数
1
解决办法
3万
查看次数

为什么这些 Heredoc 和 Nowdoc 会导致错误?

我已经找到了一些解决方案,但不知道发生了什么......

示例 1:

<?php

echo <<< EOD
test
EOD;
Run Code Online (Sandbox Code Playgroud)

示例 2:

<?php

echo <<< 'EOD'
test
EOD;
Run Code Online (Sandbox Code Playgroud)

输出 1,2:

PHP Parse error:  syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN)
Run Code Online (Sandbox Code Playgroud)

示例 3:

<?php

echo <<< EOD
test
EOD;

?>
Run Code Online (Sandbox Code Playgroud)

示例 4:

<?php

echo <<< 'EOD'
test
EOD;

?>
Run Code Online (Sandbox Code Playgroud)

示例 5:

<?php

echo <<< EOD
test
EOD;
'dummy';
Run Code Online (Sandbox Code Playgroud)

示例 6:

<?php

echo <<< 'EOD'
test
EOD;
'dummy';
Run Code Online (Sandbox Code Playgroud)

输出 3、4、5、6:

test
Run Code Online (Sandbox Code Playgroud)

php heredoc nowdoc

6
推荐指数
2
解决办法
1万
查看次数

PHP - 识别调用函数的时间

我正在考虑如何找到任何函数的调用位置.问题是我需要找到PHP调用mail()函数的位置.一种方法是使用register_tick_function(),但我需要打开每个文件并检查每行上的内容.该项目非常庞大,在PHP中解析每个文件需要很长时间.还有其他方法吗?或选项如何覆盖mail()功能?

php debugging overriding nowdoc

3
推荐指数
1
解决办法
192
查看次数

在textarea上看不到新行 - 问题是什么?

我有一个php字符串,其中包含很多要在textarea html元素中显示的信息.

我无法访问该textarea,也无法访问生成它的脚本(如果有的话).

$somestring = 'first line \nSecond line \nThird line.';
Run Code Online (Sandbox Code Playgroud)

$ somestring因为没有使用trim或filter_var"工作".没有.

在文本字段上,我得到\n印在textarea上,因此,没有解释.

为了将这些新线应用,我可以尝试什么?

提前致谢.

php textarea newline nowdoc

2
推荐指数
1
解决办法
726
查看次数

一些不清楚的PHP语法

我是一名PHP初学者,在论坛上看到了这个PHP表达式:

我的PHP版本是5.2.X()

$regex = <<<'END'
/
  ( [\x00-\x7F]                 # single-byte sequences   0xxxxxxx
  | [\xC0-\xDF][\x80-\xBF]      # double-byte sequences   110xxxxx 10xxxxxx
  | [\xE0-\xEF][\x80-\xBF]{2}   # triple-byte sequences   1110xxxx 10xxxxxx * 2
  | [\xF0-\xF7][\x80-\xBF]{3}   # quadruple-byte sequence 11110xxx 10xxxxxx * 3 
  )
| ( [\x80-\xBF] )               # invalid byte in range 10000000 - 10111111
| ( [\xC0-\xFF] )               # invalid byte in range 11000000 - 11111111
/x
END;
Run Code Online (Sandbox Code Playgroud)

这段代码是否正确?做这些怪一样(对我来说)结构<<<,'END',/,/x,和END;是什么意思?

我的PHP版本不支持nowdoc,我应该如何替换这个表达式?没有引号'END'$ regex成了NULL …

php syntax nowdoc

0
推荐指数
2
解决办法
278
查看次数

标签 统计

nowdoc ×5

php ×5

heredoc ×2

debugging ×1

newline ×1

overriding ×1

syntax ×1

textarea ×1