php函数参数未保留传入的完整字符串

Tim*_*ipp 0 php function-parameter texttrimming

我有一个PHP函数,在回显一个字符串时,正在丢失一些传递给它的字符.有什么理由会发生这种情况吗?

我通过: $vhkvdov#jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX

它返回: #jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX

这是我的PHP代码:

<?php
function display($str) {
    echo $str;
}
display("$vhkvdov#jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX");
?>
Run Code Online (Sandbox Code Playgroud)

hek*_*mgl 7

如果您$在字符串中使用单引号:

display('$vhkvdov#jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX');
Run Code Online (Sandbox Code Playgroud)

否则PHP将尝试$vhkvdov用作变量名称并用其内容替换它,什么都没有,因为我期望变量未设置

PHP对字符串的引用


注意:在开发过程中,我会error_reporting在php.ini中设置

error_reporting=E_ALL | E_NOTICE;
Run Code Online (Sandbox Code Playgroud)

display_errors=On
Run Code Online (Sandbox Code Playgroud)

要么

log_errors=On
error_log=PATH/TO/YOUR/LOG.file ; make sure this is writable by the web server
Run Code Online (Sandbox Code Playgroud)

查看错误消息,例如:

PHP注意:未定义的变量:vhkvdov in

  • 在开发过程中激活PHP中的通知可以帮助调试这些问题,因为它会返回类似"PHP注意:未定义的变量:第XX行的file.php中的vhkvdov" (2认同)