我有一个问题。我试图用这样的ASCII文本写一个字符串:' / \'。但每当我这样做时,反斜杠会通过取消定义字符串的引号来搞砸代码,从而将其搞砸。反正是否取消反斜杠所以它没有取消引用?谢谢你们!
答案 0 :(得分:2)
\
是特殊字符,表示:'下一个字符具有特殊含义'。
因此,如果你想显示\
,你应该写... \\
以便在输出中获得一个\
答案 1 :(得分:0)
写这样的东西时,一个很好的解决方案是HEREDOC。在heredoc块中你不需要担心逃避任何东西,它只是文本。
例如:
echo <<<TEXT
/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
TEXT;
有一个问题。如果你没有在行的开头对齐回音,或者如果TEXT,那么PHP将会中断;在行的开头没有对齐。
也可以将Heredoc分配给变量,如下所示:
$var = <<<SOME_MORE_TEXT
/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
SOME_MORE_TEXT;
最后,HEREDOC会保留标签和空格。在进行ASCII艺术时,这也可能会派上用场。
有关详细信息,请参阅:http://php.net/manual/en/language.types.string.php。
答案 2 :(得分:0)
显示您尝试过的内容会非常有帮助,但这会产生您要求的确切输出(如图所示)
bool shutdownDetected = false;
void signal_handler(const int sigid)
{
shutdownDetected = true;
}
int main(int argc, const char * argv[])
{
signal(SIGTERM, (sig_t)signal_handler);
std::async(std::launch::async, [&] () {
std::this_thread::sleep_for( std::chrono::milliseconds{5000});
std::cout << "On TIMER!" << std::endl;
} );
std::cout << "main function" << std::endl;
while (!shutdownDetected) {
}
return EXIT_SUCCESS;
}
'/ \'
它还应该让您了解反斜杠转义如何在不同类型的字符串中起作用。
答案 3 :(得分:0)
使用单引号时,您只需要逃避最后一次。
$var = 'backslash\backslash\backslash\\';
// output is:
// backslash\backslash\backslash\