0
タイトルに上記のエラーが表示されます。 Get_categoryというクラスでは、Categorizeというクラスから$ arrという静的配列にアクセスしようとしています。ここで
は私がアレイにアクセスしようとしていますGET_CATEGORYクラスである:ここでは
class Get_category extends Controller{
function run($xml){
global $FILE_ROOT, $STORAGE, $REQ_ID, $CMD_EXTRA, $LIB, $BIN;
include_once __DIR__.'/categorize.php';
$file = $xml->filename;
$arr = Categorize::$arr;
/*$arrlength = count($arr);*/
$arrlength = max(array_map('count',self::$arr));
$response = "<parameters>\n<requestID>" . $REQ_ID ."</requestID>\n<requestType>get_category</requestType>";
for($i = 0; $i < self::$arrlength; $i++){
$lengthcolumn = count(self::$arr[$i]);
for($j = 0; $j < $lengthcolumn; $j++){
if(self::$arr[$i][$j] == $file){
echo self::$arr[$i][$j];
$response .= "<resource><id>" . self::$arr[$i][$j] . "</id>";
$response .= "</resource>";
}
}
}
$response .= "</parameters>";
return $response;
}
}
は、静的な配列が配置されている分類クラスである:あなたのGET_CATEGORYクラスで
class Categorize extends Controller{
public static $arr = array();
function run($xml){
global $FILE_ROOT, $STORAGE, $REQ_ID, $CMD_EXTRA, $LIB, $BIN;
$numCategories = intval($xml->numCategories);
self::$arr;
/*self::$arr = array();*/
/*if(!pe($xml, "resourceList")) die(err("No resources found"));*/
for($i=0;$i < $numCategories; $i++){
$name = intval($xml->nameCat);
if($i=0){
self::$arr[0][0] = $name;
}else{
self::$arr[$i][0] = $name;
}
}
$j = 0;
while($j < $numCategories){
$numDoc = intval($xml->numDoc);
$k = 0;
foreach($xml->resourceList->resource as $res){
self::$arr[$j][$k] = $res;
$k++;
}
$j++;
}
$output = "Done!";
$response = "<parameters><requestType>categorize</requestType><requestID>". $REQ_ID . "</requestID><resourceList>". $output . "</resourceList></parameters>";
return $response;
}
}
'はGlobal' ISN」の使用に変更しました特に良いことに、値をパラメータとして渡すか、クラスのコンストラクタに渡します。 'global'はテストが難しく、依存性注入はもっと柔軟になります。 –