我无法将变量从一个方法传递到另一个方法,我正在尝试如下,但是失败了
DDSD
public function hacerloginAction(){
//Obtener parámetros
$v_c_request = $this->getRequest();
$a_params = $v_c_request->getParams();
$v_c_url = Zend_Registry::get('base_action')."login/hacerlogin";
$this->view->v_c_url = $v_c_url;
//Realizar autentificación OpenId - Parte 1: conectar_openid
//p_c_parametros
$_SERVER['PHP_SELF'] = str_replace("/p_c_parametros", "", dirname($_SERVER['PHP_SELF']));
//Si 'a_params["p_c_parametros"]' tiene valores se asignan a una variable de sesion
if( isset($a_params["p_c_parametros"]) && $a_params["p_c_parametros"] != null){
$_SESSION['p_c_parametros'] = $a_params["p_c_parametros"];
}
//Se obtienen el parametro de 'p_openid' hya.com.mx
$p_openid = str_replace("|","/",$a_params["p_openid"]);
$this->obj_openidlog->conectar_openid($p_openid);
//Render a la página de inicio.
$this->render("formalogin");
}
DS
答案 0 :(得分:1)
$global
应该在课堂内。你在外面。
class myclass{
public $global;
public function method_one(){
$this->global = "succes";
}
public function method_two(){
return $this->global;
}
}
答案 1 :(得分:1)
要使用$this->
访问变量,它必须是类属性:
class myclass{
public $global;
public function method_one(){
$this->global = "succes";
}
public function method_two(){
return $this->global;
}
}
答案 2 :(得分:1)
如果您尝试使用共享变量,则可能是属性:
class myclass{
private $variable;
public function method_one(){
$this->variable = "success";
}
public function method_two(){
return $this->variable;
}
}
myclass的每个实例都有自己的变量私有副本。
您可以使用此代码对其进行测试:
$myObject = new myclass();
$myObject->method_one();
echo $myObject->method_two();
希望这有帮助!
答案 3 :(得分:0)
" $这"用于访问类内变量。你可以在这里看到详细信息: http://php.net/manual/en/language.oop5.basic.php 你的代码必须像
class myclass{
public $global;
public function method_one(){
$this->global = "succes";
}
public function method_two(){
return $this->global;
}
}
答案 4 :(得分:0)
我设法获得"成功"很简单,下面的代码将产生所需的输出:
class myclass{
public $global;
public function method_one(){
$this->global = "succes";
}
public function method_two(){
return $this->global;
}
}
$Class = new myclass();
$Class->method_one();
echo $Class->method_two();
默认情况下,global
设置为空白,您必须调用method_one();
为内部变量赋值。只有这样你才能产生回声。
否则,以下内容:
$Class = new myclass();
var_dump($Class->method_two());
生成
NULL
旁注。我建议避免使用global
之类的保留PHP词,因为它可能会在开发Use of Global scope in PHP
使用您更新的代码
你没有得到预期的验证的原因是这一点:
header("Location: http://hyapresenta.com/sv3/public/login/obtener");
因为你正在调用你的第一个设置变量的方法..你也引起了一个页面重定向,它在此之前重置了所有的更改(这是因为你的默认值是在pageload上加载的),你可以考虑使用会话,以保持您的更改过去页面刷新。唯一的缺点是它需要一个剧烈的结构变化
答案 5 :(得分:0)