怪事,静态变量不能赋值!解决思路
程序员文章站
2022-05-16 17:45:21
...
怪事,静态变量不能赋值!
程序如下:
class dbManage {
public static $siteInfo; //站点信息
/**
* 默认执行
*/
function __construct() {
$domainKey = strtolower($_SERVER['SERVER_NAME']);
$domainKey = str_ireplace("www.", "", $domainKey);
self::$siteInfo = dbManage::getSiteInfo($domainKey);
}
public static function getSiteInfo($domain) {
self::$siteInfo = $_COOKIE["site"]; if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain) {
$sql = "select * from site_config where domain='{$domain}'";
self::$siteInfo = self::queryArray($sql);
self::setCookie(self::$siteInfo, "site");
}
return self::$siteInfo;
}
}
问题出在红字那一行。明明$_COOKIE["site"]中有数据,可是self::$siteInfo中始终为空。请哪位高手帮我看看是什么原因?
------解决方案--------------------
你如何知道 self::$siteInfo中始终为空 ???
------解决方案--------------------
self::$siteInfo = $_COOKIE["site"]; if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain) {
你一会儿用$_COOKIE["site"]来赋值,一会儿又要使用$siteInfo["domain"]
试问,$_COOKIE["site"]或$siteInfo是数组么?domain这个哪里来?
------解决方案--------------------
self::$siteInfo = $_COOKIE["site"];//这个值是数组?
if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain)//你在条件内输出个值看下有没有执行不就知道了?
程序如下:
class dbManage {
public static $siteInfo; //站点信息
/**
* 默认执行
*/
function __construct() {
$domainKey = strtolower($_SERVER['SERVER_NAME']);
$domainKey = str_ireplace("www.", "", $domainKey);
self::$siteInfo = dbManage::getSiteInfo($domainKey);
}
public static function getSiteInfo($domain) {
self::$siteInfo = $_COOKIE["site"]; if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain) {
$sql = "select * from site_config where domain='{$domain}'";
self::$siteInfo = self::queryArray($sql);
self::setCookie(self::$siteInfo, "site");
}
return self::$siteInfo;
}
}
问题出在红字那一行。明明$_COOKIE["site"]中有数据,可是self::$siteInfo中始终为空。请哪位高手帮我看看是什么原因?
------解决方案--------------------
你如何知道 self::$siteInfo中始终为空 ???
------解决方案--------------------
self::$siteInfo = $_COOKIE["site"]; if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain) {
你一会儿用$_COOKIE["site"]来赋值,一会儿又要使用$siteInfo["domain"]
试问,$_COOKIE["site"]或$siteInfo是数组么?domain这个哪里来?
------解决方案--------------------
self::$siteInfo = $_COOKIE["site"];//这个值是数组?
if (empty(self::$siteInfo) || self::$siteInfo["domain"] != $domain)//你在条件内输出个值看下有没有执行不就知道了?
相关文章
相关视频
推荐阅读
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
-
php调用有输出的函数,但是不输出,赋值到变量中。解决思路
-
怪事,静态变量不能赋值!解决思路
-
怪事,静态变量不能赋值!解决思路
-
php调用有输出的函数,但是不输出,赋值到变量中。解决思路
-
新人:为什么不能通过_get()与_set()给private字段赋值并输出?解决思路
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法_jquery
-
新人:为什么不能通过_get()与_set()给private字段赋值并输出?解决思路
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法_jquery