[英]php type cast and array reference
我在PHP OOPS代碼中遇到問題。
我的代碼是:
class Settings
{
private $client_addr = array(
'ClientID' => array('maxlength'=>'10','IsNull'=>'n'),
'ClientAddressType' => array('maxlength'=>'12','IsNull'=>'y'),
'ClientAddressLine1' => array('maxlength'=>'30','IsNull'=>'y'),
'ClientAddressLine2' => array('maxlength'=>'30','IsNull'=>'y'),
'ClientCounty' => array('maxlength'=>'30','IsNull'=>'y'),
'ClientCity' => array('maxlength'=>'30','IsNull'=>'y'),
'ClientState' => array('maxlength'=>'2','IsNull'=>'y'),
'ClientZip' => array('maxlength'=>'9','IsNull'=>'y'),
);
private $client_general = array(
'PayerID' => array('maxlength'=>'64','IsNull'=>'n'),
'ProviderID' => array('maxlength'=>'50','IsNull'=>'n'),
'ClientID' => array('maxlength'=>'10','IsNull'=>'n'),
'ClientFirstName' => array('maxlength'=>'30','IsNull'=>'n'),
'ClientMiddleInitial' => array('maxlength'=>'1','IsNull'=>'y'),
'ClientLastName' => array('maxlength'=>'30','IsNull'=>'n'),
);
function getSelectedArrayData($setlected_arr)
{
$setlected_arr = '$this->'."$setlected_arr";
print_r($setlected_arr); //it prints a string '$this->client_general'
print_r($this->client_general);//it prints $client_general array data
}
}
$settings = new Settings();
$settings->getSelectedArrayData('client_general');
我的問題是:
當我打印print_r($this->client_general);
可以打印$client_general
數組。
Array
(
[PayerID] => Array
(
[maxlength] => 64
[IsNull] => n
)
[ProviderID] => Array
(
[maxlength] => 50
[IsNull] => n
)
[ClientID] => Array
(
[maxlength] => 10
[IsNull] => n
)
[ClientFirstName] => Array
(
[maxlength] => 30
[IsNull] => n
)
[ClientMiddleInitial] => Array
(
[maxlength] => 1
[IsNull] => y
)
[ClientLastName] => Array
(
[maxlength] => 30
[IsNull] => n
)
)
當我打印print_r($setlected_arr);
印了
$this->client_general
我認為它也應該指向$client_general
數組。
我該怎么辦?
print_r($this->$setlected_arr);
試試這個,它為您服務。
class Settings {
private $client_addr = array(
'ClientID' => array('maxlength' => '10', 'IsNull' => 'n'),
'ClientAddressType' => array('maxlength' => '12', 'IsNull' => 'y'),
'ClientAddressLine1' => array('maxlength' => '30', 'IsNull' => 'y'),
'ClientAddressLine2' => array('maxlength' => '30', 'IsNull' => 'y'),
'ClientCounty' => array('maxlength' => '30', 'IsNull' => 'y'),
'ClientCity' => array('maxlength' => '30', 'IsNull' => 'y'),
'ClientState' => array('maxlength' => '2', 'IsNull' => 'y'),
'ClientZip' => array('maxlength' => '9', 'IsNull' => 'y'),
);
private $client_general = array(
'PayerID' => array('maxlength' => '64', 'IsNull' => 'n'),
'ProviderID' => array('maxlength' => '50', 'IsNull' => 'n'),
'ClientID' => array('maxlength' => '10', 'IsNull' => 'n'),
'ClientFirstName' => array('maxlength' => '30', 'IsNull' => 'n'),
'ClientMiddleInitial' => array('maxlength' => '1', 'IsNull' => 'y'),
'ClientLastName' => array('maxlength' => '30', 'IsNull' => 'n'),
);
function getSelectedArrayData($setlected_arr) {
$setlected_arr = ${'this'}->${'setlected_arr'};
print_r($setlected_arr); //it prints a string '$this->client_general'
echo '<br/>';
echo '<br/>';
print_r($this->client_general); //it prints $client_general array data
}
}
$settings = new Settings();
$settings->getSelectedArrayData('client_general');
您可以通過字符串創建動態變量的示例在此處:
${'a' . 'b'} = 'hello there';
echo $ab; // hello there
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.