Php 如何区分数组和非数组输出

Php 如何区分数组和非数组输出,php,Php,我正在研究一种从查询中提取文件列表的方法,当查询返回多个文件时,我遇到了问题 <?php error_reporting(E_ALL); ini_set('error_reporting', E_ALL); ini_set('display_errors',1); static $fileCount = 0; date_default_timezone_set('UTC'); ob_start(); $soapClient = new SoapClient(

我正在研究一种从查询中提取文件列表的方法,当查询返回多个文件时,我遇到了问题

<?php 

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);


static $fileCount = 0;
date_default_timezone_set('UTC');

ob_start(); 


        $soapClient = new SoapClient("https://ip_address:8443/CDRonDemandService/services/CDRonDemand?wsdl", 
array("login" => "login","password"=> "password","trace" => true, "cache_wsdl" => WSDL_CACHE_NONE)); 

        echo '<pre>';   

//THIS LINE IS FOR A MANUAL PULL OF THE LIST.  ENTER THE START AND END DATES AS NEEDED

        $data = $soapClient->get_file_list("beginning_range","end_range","1");

//If $data only contains one object, execute this;

    if (count($data) === 1)
        {
        var_dump($data);
        $name = $data->FileName;
        echo '<tr><td>'. $name .'</td></tr>';
        $fileCount = '1';
        }

//Otherwise, execute this if $data contains any other number 
    else
        {
        sort($data->FileName);
        var_dump($data);
        foreach($data->FileName as $name)
                    {
                    echo '<tr><td>' . $name . '</td></tr><br>'; 
                    $fileCount++; 
                    }
        }

echo "<TABLE>";
$content = ob_get_clean();
echo "Number of CDR Files <b>" . $fileCount . "</b><br />";
echo $content;


?>
但是当输出包含多个文件(一个数组)时,这就是输出

object(stdClass)#2 (1) {
  ["FileName"]=>
  array(2) {
    [0]=>
    string(40) "file_1"
    [1]=>
    string(40) "file_2"
  }
}


Notice:  Array to string conversion in /var/www/test.php on line 49

Array
object(stdClass)#2 (1) {
  ["FileName"]=>
  array(2) {
    [0]=>
    string(40) "file_1"
    [1]=>
    string(40) "file_2"
  }
}
file_1
file_2
如果我删除If语句中的代码,只保留else语句中的代码,我就能够提取文件列表

if (count($data) === 1)

在我看来,If/Else结构不正确,但我不确定如何着手纠正它。此外,var_dump语句仅用于故障排除,为了表明我实际上在提取信息,我将在稍后删除它。非常感谢您的帮助。

如果您有所改变,它可能会起作用

if (count($data->Filename) === 1)


如果你改变,也许它会起作用

if (count($data->Filename) === 1)


如果你改变,也许它会起作用

if (count($data->Filename) === 1)


如果你改变,也许它会起作用

if (count($data->Filename) === 1)

看起来
count($data)
始终等于1。您正在尝试使用
$data->FileName
访问数组。这就是抛出错误的原因

if (count($data) === 1) { ... }
if(计数($data)){
if(是_数组($data->FileName)){
foreach($data->FileName作为$name){
回显“.$name.”
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回显“”。$data->FileName。“;
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回声“没有文件!”; }
看起来
计数($data)
总是等于1。您正在尝试使用
$data->FileName
访问数组。这就是抛出错误的原因

if (count($data) === 1) { ... }
if(计数($data)){
if(是_数组($data->FileName)){
foreach($data->FileName作为$name){
回显“.$name.”
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回显“”。$data->FileName。“;
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回声“没有文件!”; }
看起来
计数($data)
总是等于1。您正在尝试使用
$data->FileName
访问数组。这就是抛出错误的原因

if (count($data) === 1) { ... }
if(计数($data)){
if(是_数组($data->FileName)){
foreach($data->FileName作为$name){
回显“.$name.”
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回显“”。$data->FileName。“;
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回声“没有文件!”; }
看起来
计数($data)
总是等于1。您正在尝试使用
$data->FileName
访问数组。这就是抛出错误的原因

if (count($data) === 1) { ... }
if(计数($data)){
if(是_数组($data->FileName)){
foreach($data->FileName作为$name){
回显“.$name.”
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回显“”。$data->FileName。“;
object(stdClass)#2 (1) {
  ["FileName"]=>
  string(40) "file_1"
}
file_1
$fileCount++; } }否则{ 回声“没有文件!”; }
更改此选项:

if ( is_array($data->Filename) ) { ... }
为此:

更改此选项:

if ( is_array($data->Filename) ) { ... }
为此:

更改此选项:

if ( is_array($data->Filename) ) { ... }
为此:

更改此选项:

if ( is_array($data->Filename) ) { ... }
为此:


谢谢你,班奇拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢您的帮助。