
静态方法只能访问其他的静态方法或属性,比如
class A {private static $url;
public static function setDefaultUrl($url) {
self::$url = $url;
}
public static function getDefaultUrl() {
return self::$url;
}
}
//或者在你的静态方法中获得实例,当然这样的话可能达不到你预期的效果,推荐你还是使用上面的方法。
class A {
private $url = 'demo';
public static function getUrl() {
$obj = new self();
return $obj->url;
}
}
PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
你想在函数内部访问外部变量,你需要这样:
$test = 123;abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
PHP 要尽量不使用全局变量, 全局变量主要使用在项目中顶级的变量 中 比如 项目的目录路径, 数据库信息等 如果只是一个模块 中使用还是用参数传进去吧
对于你的代码 , 定义全局变量要接 global
global $count=0;不知道你是不是问的这个!
根据你的参考链接,这种属于前端提交数据到后端时出现的,比如前端用GET,POST传数据至后台!
举个例:前端(HTML的form)用GET传参时:外部变量=值,PHP用$_GET['外部变量']接收数据!
你这是一个类方法么,如果是你可以用
$result = array();function getResult($ret ,$i=0){
foreach($ret as $k => $v) {
global $resultaaa;
$tmp = array();
$tmp["col_id"] = $v["col_id"];
$tmp["col_pid"] = $v["col_pid"];
$tmp["col_path"] = $v["col_path"];
$tmp["col_title"] = $v["col_title"];
$this->result[$i++] = $tmp;
if($v['k'] != NULL){
$i = $this->getResult($v['k'],$i);
}
}
return $i;
}
$this->result;
如果不是类方法,你的$i = $this->getResult($v['k'],$i); 这一句是错误的,
你可以参考风云style的答案,或者增加一个传址参数
function getResult($ret ,$i=0,&$result = array()){}
外面直接用$result 就是方法里面修改后的变量
php的global可以获取函数内的变量啊。你这知识哪里看的?但是前提是该函数必须执行过。没有执行过的话啥都不能访问
说明一下
PHP global 关键词
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
<php$y=10;
function myTest() {
global $y;
$y=15;
}
myTest();//要执行过才能访问
echo $y; // 输出 15
>
$pr = new x();
$pr->a();
class x
{
var $a12=5;
function a()
{
$a11 = 1 ;
echo $this->a12($this->b());
}
function b()
{
if ( $this->a12 > 4 )
{
$b = "大于4";
}
else
{
$b = "小于4";
}
return $b;
}
}
类里,就用变量了,其他页面,如果先加载了这个class,可以直接用,如果没有,变量是不能共用的,只有用session
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)