2014-02-14 88 views
0

我有一個包含數據的文件,我想通過Class輸出它。來自PHP類的輸出數組值

marketpress-data.php

<?php 

//country list 
$this->countries = array(
    "AF" => "Afghanistan", 
    "AL" => "Albania", 
    "DZ" => "Algeria", 
    "AS" => "American Samoa", 
    "AD" => "Andorra", 
    "AO" => "Angola", 
    "AI" => "Anguilla", 
    "AQ" => "Antarctica", 
    "AG" => "Antigua And Barbuda", 
    "AR" => "Argentina", 
    "AM" => "Armenia", 
    "AW" => "Aruba", 
    "AU" => "Australia", 
    "AT" => "Austria", 
    "AZ" => "Azerbaijan", 
    "BS" => "Bahamas", 
    "BH" => "Bahrain", 
    "BD" => "Bangladesh", 
    "BB" => "Barbados", 
    "BY" => "Belarus", 
    "BE" => "Belgium", 
    "BZ" => "Belize", 
    "BJ" => "Benin", 
    "BM" => "Bermuda", 
    "BT" => "Bhutan", 
    "BO" => "Bolivia", 
    "BA" => "Bosnia And Herzegowina", 
    "BW" => "Botswana", 
    "BV" => "Bouvet Island", 
    "BR" => "Brazil", 
    "IO" => "British Indian Ocean Territory", 
    "BN" => "Brunei Darussalam", 
    "BG" => "Bulgaria", 
    "BF" => "Burkina Faso", 
    "BI" => "Burundi", 
    "KH" => "Cambodia", 
    "CM" => "Cameroon", 
    "CA" => "Canada", 
    "CV" => "Cape Verde", 
    "KY" => "Cayman Islands", 
    "CF" => "Central African Republic", 
    "TD" => "Chad", 
    "CL" => "Chile", 
    "CN" => "China", 
    "CX" => "Christmas Island", 
    "CC" => "Cocos (Keeling) Islands", 
    "CO" => "Colombia", 
    "KM" => "Comoros", 
    "CG" => "Congo", 
    "CD" => "Congo, The Democratic Republic Of The", 
    "CK" => "Cook Islands", 
    "CR" => "Costa Rica", 
    "CI" => "Cote D‌’Ivoire", 
    "HR" => "Croatia (Local Name: Hrvatska)", 
    "CU" => "Cuba", 
    "CY" => "Cyprus", 
    "CZ" => "Czech Republic", 
    "DK" => "Denmark", 
    "DJ" => "Djibouti", 
    "DM" => "Dominica", 
    "DO" => "Dominican Republic", 
    "TP" => "East Timor", 
    "EC" => "Ecuador", 
    "EG" => "Egypt", 
    "SV" => "El Salvador", 
    "GQ" => "Equatorial Guinea", 
    "ER" => "Eritrea", 
    "EE" => "Estonia", 
    "ET" => "Ethiopia", 
    "FK" => "Falkland Islands (Malvinas)", 
    "FO" => "Faroe Islands", 
    "FJ" => "Fiji", 
    "FI" => "Finland", 
    "FR" => "France", 
    "FX" => "France, Metropolitan", 
    "GF" => "French Guiana", 
    "PF" => "French Polynesia", 
    "TF" => "French Southern Territories", 
    "GA" => "Gabon", 
    "GM" => "Gambia", 
    "GE" => "Georgia", 
    "DE" => "Germany", 
    "GH" => "Ghana", 
    "GI" => "Gibraltar", 
    "GR" => "Greece", 
    "GL" => "Greenland", 
    "GD" => "Grenada", 
    "GP" => "Guadeloupe", 
    "GU" => "Guam", 
    "GT" => "Guatemala", 
    "GN" => "Guinea", 
    "GW" => "Guinea-Bissau", 
    "GY" => "Guyana", 
    "HT" => "Haiti", 
    "HM" => "Heard And Mc Donald Islands", 
    "VA" => "Holy See (Vatican City State)", 
    "HN" => "Honduras", 
    "HK" => "Hong Kong", 
    "HU" => "Hungary", 
    "IS" => "Iceland", 
    "IN" => "India", 
    "ID" => "Indonesia", 
    "IR" => "Iran (Islamic Republic Of)", 
    "IQ" => "Iraq", 
    "IE" => "Ireland", 
    "IL" => "Israel", 
    "IT" => "Italy", 
    "JM" => "Jamaica", 
    "JP" => "Japan", 
    "JO" => "Jordan", 
    "KZ" => "Kazakhstan", 
    "KE" => "Kenya", 
    "KI" => "Kiribati", 
    "KP" => "Korea, Democratic People‌’s Republic Of", 
    "KR" => "Korea, Republic Of", 
    "KW" => "Kuwait", 
    "KG" => "Kyrgyzstan", 
    "LA" => "Lao People‌’s Democratic Republic", 
    "LV" => "Latvia", 
    "LB" => "Lebanon", 
    "LS" => "Lesotho", 
    "LR" => "Liberia", 
    "LY" => "Libyan Arab Jamahiriya", 
    "LI" => "Liechtenstein", 
    "LT" => "Lithuania", 
    "LU" => "Luxembourg", 
    "MO" => "Macau", 
    "MK" => "Macedonia, Former Yugoslav Republic Of", 
    "MG" => "Madagascar", 
    "MW" => "Malawi", 
    "MY" => "Malaysia", 
    "MV" => "Maldives", 
    "ML" => "Mali", 
    "MT" => "Malta", 
    "MH" => "Marshall Islands", 
    "MQ" => "Martinique", 
    "MR" => "Mauritania", 
    "MU" => "Mauritius", 
    "YT" => "Mayotte", 
    "MX" => "Mexico", 
    "FM" => "Micronesia, Federated States Of", 
    "MD" => "Moldova, Republic Of", 
    "MC" => "Monaco", 
    "MN" => "Mongolia", 
    "ME" => "Montenegro", 
    "MS" => "Montserrat", 
    "MA" => "Morocco", 
    "MZ" => "Mozambique", 
    "MM" => "Myanmar", 
    "NA" => "Namibia", 
    "NR" => "Nauru", 
    "NP" => "Nepal", 
    "NL" => "Netherlands", 
    "AN" => "Netherlands Antilles", 
    "NC" => "New Caledonia", 
    "NZ" => "New Zealand", 
    "NI" => "Nicaragua", 
    "NE" => "Niger", 
    "NG" => "Nigeria", 
    "NU" => "Niue", 
    "NF" => "Norfolk Island", 
    "MP" => "Northern Mariana Islands", 
    "NO" => "Norway", 
    "OM" => "Oman", 
    "PK" => "Pakistan", 
    "PW" => "Palau", 
    "PA" => "Panama", 
    "PG" => "Papua New Guinea", 
    "PY" => "Paraguay", 
    "PE" => "Peru", 
    "PH" => "Philippines", 
    "PN" => "Pitcairn", 
    "PL" => "Poland", 
    "PT" => "Portugal", 
    "PR" => "Puerto Rico", 
    "QA" => "Qatar", 
    "RE" => "Reunion", 
    "RO" => "Romania", 
    "RU" => "Russian Federation", 
    "RW" => "Rwanda", 
    "KN" => "Saint Kitts And Nevis", 
    "LC" => "Saint Lucia", 
    "VC" => "Saint Vincent And The Grenadines", 
    "WS" => "Samoa", 
    "SM" => "San Marino", 
    "ST" => "Sao Tome And Principe", 
    "SA" => "Saudi Arabia", 
    "SN" => "Senegal", 
    "RS" => "Serbia", 
    "SC" => "Seychelles", 
    "SL" => "Sierra Leone", 
    "SG" => "Singapore", 
    "SK" => "Slovakia (Slovak Republic)", 
    "SI" => "Slovenia", 
    "SB" => "Solomon Islands", 
    "SO" => "Somalia", 
    "ZA" => "South Africa", 
    "GS" => "South Georgia, South Sandwich Islands", 
    "ES" => "Spain", 
    "LK" => "Sri Lanka", 
    "SH" => "St. Helena", 
    "PM" => "St. Pierre And Miquelon", 
    "SD" => "Sudan", 
    "SR" => "Suriname", 
    "SJ" => "Svalbard And Jan Mayen Islands", 
    "SZ" => "Swaziland", 
    "SE" => "Sweden", 
    "CH" => "Switzerland", 
    "SY" => "Syrian Arab Republic", 
    "TW" => "Taiwan", 
    "TJ" => "Tajikistan", 
    "TZ" => "Tanzania, United Republic Of", 
    "TH" => "Thailand", 
    "TG" => "Togo", 
    "TK" => "Tokelau", 
    "TO" => "Tonga", 
    "TT" => "Trinidad And Tobago", 
    "TN" => "Tunisia", 
    "TR" => "Turkey", 
    "TM" => "Turkmenistan", 
    "TC" => "Turks And Caicos Islands", 
    "TV" => "Tuvalu", 
    "UG" => "Uganda", 
    "UA" => "Ukraine", 
    "AE" => "United Arab Emirates", 
    "GB" => "United Kingdom", 
    "US" => "United States", 
    "UM" => "United States Minor Outlying Islands", 
    "UY" => "Uruguay", 
    "UZ" => "Uzbekistan", 
    "VU" => "Vanuatu", 
    "VE" => "Venezuela", 
    "VN" => "Viet Nam", 
    "VG" => "Virgin Islands (British)", 
    "VI" => "Virgin Islands (U.S.)", 
    "WF" => "Wallis And Futuna Islands", 
    "EH" => "Western Sahara", 
    "YE" => "Yemen", 
    "YU" => "Yugoslavia", 
    "ZM" => "Zambia", 
    "ZW" => "Zimbabwe" 
); 
?> 

現在,我使用這個類。

class MarketPress_data { 

    public function get_countries() { 
    //load data structures 
    require_once(WP_PLUGIN_DIR.'/marketpress/marketpress-includes/marketpress-data.php'); 
    return $this->countries; 
    } 
} 

$MarketPress_data = new MarketPress_data; 

,然後用試圖將數據輸出:

foreach ($MarketPress_data->get_countries() as $key => $val) { 
    echo $key . ' = ' . $val; 
} 

現在的問題是我得到這個。

Fatal error: Call to a member function get_countries() on a non-object 

請幫忙,因爲我不知道我在這裏錯過了什麼。

+0

由於某些原因,這在我的PHP 5.3.20中適用。我不確定當你沒有在你的班級中定義這個字段時,爲什麼你要使用$ this->這個國家。如果您刪除$ this或定義字段會發生什麼? –

+0

我試圖刪除$這仍然是一樣的..我無法弄清楚。 – Ken

+1

除非先前已聲明,否則不能指定給某個字段。將'private $ countries'行添加到您的班級中。我不認爲這會解決你的錯誤,但是誰知道:) –

回答

0

爲了進一步調試,我會在調用函數之前在對象上運行var_dump來查看它是否已經創建。那個錯誤告訴我它在創建對象時遇到了麻煩。

+0

的var_dump說NULL – Ken

+0

嘗試的var_dump($ MarketPress_data),並說對象(MarketPress_data)#77(0){} – Ken

+0

是你能夠發佈一些文件,所以我可以測試或完整的堆棧跟蹤?你是否也說過這是PHP 5.4的一個特定問題,或者你是否嘗試過5.3? – wallerjake