PHP请问在static的function中如何访问变量

PHP请问在static的function中如何访问变量,第1张

静态方法只能访问其他的静态方法或属性,比如

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13494421.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存