私は次の配列へのアクセスPHP 7オブジェクトのプロパティ
$arrdata = array("CTypeID","TypeName","CTYPES","CID","COURSES","CTypeID");
はこの配列が関数にさらされてい次のように呼び出された関数のGeneric2DataSideBar($arrdata);
定義は次のとおりです。
function Generic2DataSideBar($data)
{
//a generic array for data..
//var_dump($data);
$sdata= array();
//this is the function for generating depended data...
$this->load->model("Commons");
$dat="SELECT ".$data[0].",".$data[1]." FROM ".$data[2];
$result=$this->Commons->LoadResultSet($dat);
//Looping through the resultset
foreach ($result as $key) {
//get the number of departments
$da="SELECT ".$data[3]." FROM ".$data[4]." WHERE ".$data[5]."='".$key->$data[0]."'";
$dat=count($this->Commons->LoadResultSet($da));
$r=array($key->$data[1], $dat);
array_push($sdata, $r);
}
header("content-type: application/json");
$sdata=json_encode($sdata);
return $sdata;
}
この機能がありますPHP 5.6.3でうまくいきましたが、PHP 7にアップグレードしたときに、$da="SELECT ".$data[3]." FROM ".$data[4]." WHERE ".$data[5]."='".$key->$data[0]."'";
という行が問題になります$key->$data[0]
は''
を返します。その部分を除いてすべての値はOKです。 PHP 7では、$key->"Data"
のようなものはありません。なぜなら、 "Data"は有効なプロパティ名なのでしょうか?ありがとう
上のコードの動作を変更しない - [0]($キー> $データ)'と変数の取り扱いには後方互換性がないことを確認してくださいhttp://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.variable-handling – jitendrapurohit
ありがとうございますが、動作していません。 – NetizenKing