Undefined.... var

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
ol4pr0
Forum Regular
Posts: 926
Joined: Thu Jan 08, 2004 11:22 am
Location: ecuador

Undefined.... var

Post by ol4pr0 »

Ok what am i doing wrong.. i just cant see it.

Code: Select all

class (foo)  {
	var $transGroup = "xx"; 
	var $orderParty = "xxxxxxx"; # Set account nummer van Wadloop
	var $hasNameCode = false; # Kan true zijn maar deze is false default.
	var $nameOrderingParty = "xxxxx"; # True wanneer NameOrderingParty word gebruikt.
	var $pattern = "dd-mm-yyyy";

	function xmlHeader() {

		$_xml ="<clieop transactionGroup=".$this->transGroup.">\r\n"; 
		$_xml .="<batch>\r\n"; 
		$_xml .="<accountNumberOrderingParty value=".$orderParty."/>\r\n"; 		
		$_xml .="<hasNameCode value=".$this->hasNameCode."/>\r\n";
         }      
}
Error ..

Notice: Undefined property: transGroup
aswell as for the others..
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

That's the exact code? .. all of it?
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Try this...

Code: Select all

<?php
class foo  {
        var $transGroup = 'xx';
        var $orderParty = 'xxxxxxx'; # Set account nummer van Wadloop
        var $hasNameCode = false; # Kan true zijn maar deze is false default.
        var $nameOrderingParty = 'xxxxx'; # True wanneer NameOrderingParty word gebruikt.
        var $pattern = 'dd-mm-yyyy';

        function xmlHeader() {

                $_xml ="<clieop transactionGroup=".$this->transGroup.">\r\n";
                $_xml .="<batch>\r\n";
                $_xml .="<accountNumberOrderingParty value=".$this->orderParty."/>\r\n";           
                $_xml .="<hasNameCode value=".$this->hasNameCode."/>\r\n";
         }     
}
?>
Also, make sure that none of the values for the vars are variable. They must be static in order to not error/notice out.
User avatar
ol4pr0
Forum Regular
Posts: 926
Joined: Thu Jan 08, 2004 11:22 am
Location: ecuador

Post by ol4pr0 »

Yea basicly.. ofcourse it has some more at the bottom and all that.

but even like that it doesnt work.. i tried it before asking it jeje..
User avatar
ol4pr0
Forum Regular
Posts: 926
Joined: Thu Jan 08, 2004 11:22 am
Location: ecuador

Post by ol4pr0 »

to show. you

Errors
Notice: Undefined variable: this in C:\Apache\Apache2\htdocs\xmlfoo.php on line 11

Notice: Undefined variable: this in C:\Apache\Apache2\htdocs\xmlfoo.php on line 13

Notice: Undefined variable: this in C:\Apache\Apache2\htdocs\xmlfoo.php on line 14

Code: Select all

<?php 
class foo  { 
        var $transGroup = 'xx'; 
        var $orderParty = 'xxxxxxx'; # Set account nummer van Wadloop 
        var $hasNameCode = false; # Kan true zijn maar deze is false default. 
        var $nameOrderingParty = 'xxxxx'; # True wanneer NameOrderingParty word gebruikt. 
        var $pattern = 'dd-mm-yyyy'; 

        function xmlHeader() { 

                $_xml ="<clieop transactionGroup=".$this->transGroup.">\r\n"; 
                $_xml .="<batch>\r\n"; 
                $_xml .="<accountNumberOrderingParty value=".$this->orderParty."/>\r\n";            
                $_xml .="<hasNameCode value=".$this->hasNameCode."/>\r\n"; 
                $_xml .="</batch>\r\n"; 
				$_xml ="</clieop>\r\n"; 


         }      
} 


echo foo::xmlHeader();
?>
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

You're calling the function statically, $this doesn't exist under that condition. self::$varname will however.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Try returning something from the function...

Code: Select all

<?php
class foo  {
        var $transGroup = 'xx';
        var $orderParty = 'xxxxxxx'; # Set account nummer van Wadloop
        var $hasNameCode = false; # Kan true zijn maar deze is false default.
        var $nameOrderingParty = 'xxxxx'; # True wanneer NameOrderingParty word gebruikt.
        var $pattern = 'dd-mm-yyyy';

        function foo() {}

        function xmlHeader() {
                $_xml ="<clieop transactionGroup=".$this->transGroup.">\r\n";
                $_xml .="<batch>\r\n";
                $_xml .="<accountNumberOrderingParty value=".$this->orderParty."/>\r\n";           
                $_xml .="<hasNameCode value=".$this->hasNameCode."/>\r\n";
                $_xml .="</batch>\r\n";
                $_xml ="</clieop>\r\n";
                
                return $_xml;
         }     
}

$foo = new foo();
echo $foo->xmlHeader();
echo 'transGroup is ' . $foo->transGroup;
?>
Post Reply