在PHP中无法在多行中生成字符串类型的变量输出

时间:2019-02-27 23:48:15

标签: php

我不知道我遇到的这个问题的正确措词。

我有一个从数据库返回的对象,如下所示:

$pProvisioningFileData->m_fileContent = # Placeholders identified by '${}' 
will be replaced during the provisioning
# process, only supported placeholders will be processed.
Dcm.SerialNumber = ${unit.serial_number}
Dcm.MacAddress = ${unit.mac_address}
Dcm.MinSeverity = "Warning"
Cert.TransferHttpsCipherSuite = "CS1"
Cert.TransferHttpsTlsVersion = "TLSv1"
Cert.MinSeverity = "Warning";

大括号是占位符,我面临的问题是,当我尝试使用echoprint_r输出所有内容时,所有内容都打印在一行中,但是我想显示内容与上述顺序相同。

我尝试使用var_dump,但是它还提供了一些其他信息,例如长度和不需要的变量类型。

那么有一种不使用数组的简单方法吗?

2 个答案:

答案 0 :(得分:2)

如果要输出到浏览器,则将var_dump包装在html <pre>标签中是快速解决方案。如果输出到控制台,则建议您安装一些高级调试软件。 Xdebug浮现在脑海。

答案 1 :(得分:0)

从问题中很难准确地了解您要执行的操作,但是可以通过三种方式打印出对象的内容。这里的第三个成员是循环成员,它将为您提供更多控制权,并且您可以添加switch语句或其他格式以精确输出所需的内容:

class unit {

    var $serial_number;
    var $mac_address;
}

    $test = new unit;
    $test->serial_number = "999";
    $test->mac_address = "999.999.999.999";

    /* Method 1 - print_r */

    print_r($test); 
    print "\n\n";

    /* Method 1 - var_dump */

    var_dump($test); 
    print "\n\n";

    /* Method 3 - looping members */

    foreach ($test as $memberName => $member) 
    {
        print "{$memberName}: {$member}\n";
    }