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) ) { ... }
为此:
谢谢你,班奇拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢,非常感谢。谢谢你,班齐拉。非常感谢您的帮助。