[英]How to pass a PHP variable from one function to another?
I want to pass variable ($q_view)
from a function q_view_main
to a function sidebar
. 我想将变量($q_view)
从函数q_view_main
传递给函数sidebar
。 Also searched stackoverflow for solution but dont understand it. 还搜索stackoverflow寻找解决方案,但不了解。
Both functions are in same class. 两种功能在同一类中。
function main()
{
$content=$this->content;
$this->main_parts($content);
$this->suggest_next();
$this->widgets('main', 'bottom');
$this->main_sidebar();
}
function main_sidebar()
{
$content=$this->content;
$main_class = ((!empty ($content['widgets']['main']['high'])) ? 'twelve' : 'nine');
if (!empty ($content['widgets']['main']['high'])){
$this->output('<DIV class="main-sidebar three columns">', '');
$this->post_tags($q_view_for_sidebar, 'qa-q-view'); //want
$this->widgets('main', 'high');
$this->output('</DIV>');
}
}
function main_parts($content)
{
foreach ($content as $key => $part) {
$this->set_context('part', $key);
$this->main_part($key, $part);
}
}
function main_part($key, $part)
{
if (strpos($key, 'custom')===0)
$this->output_raw($part);
elseif (strpos($key, 'form')===0)
$this->form($part);
elseif (strpos($key, 'q_list')===0)
$this->q_list_and_form($part);
elseif (strpos($key, 'q_view')===0)
$this->q_view($part);
elseif (strpos($key, 'a_form')===0)
$this->a_form($part);
elseif (strpos($key, 'a_list')===0)
$this->a_list($part);
elseif (strpos($key, 'ranking')===0)
$this->ranking($part);
elseif (strpos($key, 'message_list')===0)
$this->message_list_and_form($part);
elseif (strpos($key, 'nav_list')===0) {
$this->section(@$part['title']);
$this->nav_list($part['nav'], $part['type'], 1);
}
}
function q_view_main($q_view)
{
$this->q_view_stats($q_view);
$this->post_meta_author($q_view, 'qa-q-view');
$this->q_view_content($q_view);
$this->q_view_extra($q_view);
$this->q_view_follows($q_view);
$this->q_view_closed($q_view);
$this->post_tags($q_view, 'qa-q-view');
$this->post_meta_other($q_view, 'qa-q-view');
$this->q_view_buttons($q_view);
$this->c_list(@$q_view['c_list'], 'qa-q-view');
$this->output('</DIV>');
}
If both of your function are residing in the same class you can call a function inside another function using $this as pointed in other answers 如果两个函数都位于同一个类中,则可以使用$ this调用另一个函数中的另一个函数,如其他答案所示
class myclass{
public $var1 = 121;
public function foo($postid){
echo $postid;
}
public function bar(){
$this->foo($this->var1);
}
}
$objectmyclass = new myclass();
$objectmyclass->bar();
OR 要么
class myclass{
public $var1 = 122;
public function foo($postid){
echo $postid;
}
public function bar($postid){
$this->foo($postid);
}
}
$objectmyclass = new myclass();
$objectmyclass->bar($objectmyclass->var1);
both ways you will be able to execute the statements inside the function foo hope this helps 两种方式都可以执行foo函数中的语句,希望这对您有所帮助
You just call post function in sidebar function if I am not mistaking to understand u 如果我不想误会你,只需在侧边栏函数中调用post函数
function sidebar($postID)
{
$postID=$this->post($postID);
$this->output($this->content);
$this->tag($postID); //get $postID from sidebar
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.