我知道这个问题在一百种不同的方面被问了一百次。但我无法让这个特别的人工作。我真的很困惑。
这是我脚本的开头:
<?php
class API {
protected static $message, $data, $status, $session, $token, $dbo, $app;
const FAIL = 0;
const SUCCESS = 1;
const INCOMPLETE_ARGS = 2;
const GROUP_ALLOW = array(5);
public static function Init() {
global $app;
self::$status = false;
self::$message = "Invalid request.";
self::$data = "";
}
public static function Render() {
echo preg_replace("/\\\\u([0-9abcdef]{4})/", "&#x$1;", json_encode(array(
"status" => self::$status,
"message" => self::$message,
"data" => self::$data))
);
}
然后有这个功能:
public static function Login() {
$email = (isset($_REQUEST['email'])) ? $_REQUEST['email'] : "";
$password = (isset($_REQUEST['password'])) ? $_REQUEST['password'] : "";
require_once ("../app/Mage.php");
umask(0);
ob_start();
session_start();
Mage::app('default');
Mage::getSingleton("core/session", array("name" => "frontend"));
$b2bwebsiteid = Mage::getStoreConfig('base/general/b2bwebsite');
//$websiteId = Mage::app()->getWebsite()->getId();
//$store = Mage::app()->getStore();
$customer = Mage::getModel("customer/customer");
$customer->website_id = $b2bwebsiteid;
$customer->loadByEmail($email);
$countryCodeBE = $customer->getDefaultBillingAddress()->getCountry();
$countrybe = Mage::getModel('directory/country')->loadByCode($countryCodeBE);
$countryid = $countrybe->getCountryId();
.....
.....
在两者之间有更多的代码和功能。
现在再远一点,还有另一个功能:
public static function ProductInfoNew() {
现在我想要的是从 ProductInfoNew 函数中的第一个函数加载变量 $ countryid ,这样我就可以这样做:
if ($countryid == "BE") {
$groupid = 6;
}
else {
$groupid = 4;
}
但输出似乎总是为NULL或空。
我尝试将$ countryid变量设置为global,static,尝试使用self ::加载变量,我尝试了很多东西,但我无法让它工作。
有谁知道这样做的正确解决方案? 非常感谢。
答案 0 :(得分:1)
$countryid
应该是您正在使用的类中的字段。
class API {
private static $country_id;
public static function ProductInfoNew() {
if (self::$country_id == "BE") {
$groupid = 6;
} else {
$groupid = 4;
}
}
}