php class scope when calling a non-method function not accessing all class members
Posted
by Aglystas
on Stack Overflow
See other posts from Stack Overflow
or by Aglystas
Published on 2010-03-19T17:59:25Z
Indexed on
2010/03/19
18:01 UTC
Read the original article
Hit count: 253
So I'm using a stand alone function from within a class that that uses the class it's being called from. Here's the function
function catalogProductLink($product_id,$product_name,$categories=true) {
//This is the class that the function is called from
global $STATE;
if ($categories) {
//The $STATE->category_id is the property I want to access, which I can't
if (is_array($STATE->category_id)) {
foreach($STATE->category_id as $cat_id) {
if ($cat_id == 0) continue;
$str .= "c$cat_id/";
}
}
}
$str .= catalogUrlKeywords($product_name).'-p'.$product_id.'.html';
return $str;
}
And here's the function call, which is being made from within the $STATE class.
$redirect = catalogProductLink($this->product_id, $tempProd->product_name, true, false);
The object that I need access to is the $STATE object that has been declared global. Prior to this function call there are lots of public properties populated, but when I look at the $STATE object within the function scope it loses all the properties but one, product_id. The property that matters for this function is the category_id property, which is an array of category id's.
I'm wondering why I don't have access to all the public properties of the $STATE object and how I can get access to them.
© Stack Overflow or respective owner