RE: Help with Class

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Thomas,

Thanks for the help. That didn't work though ...

Its now set to be $SDK = new sdk;

Nothing :(

-----Original Message-----
From: Thomas [mailto:tomatosh@xxxxxxxxx] 
Sent: 08 September 2005 09:08 AM
To: 'Ian Barnes'
Subject: RE:  Help with Class


Sorry for not explaining ... [code]$SDK =& new ipbsdk;[/code] initializes
the $SDK variable as a reference of the class ipbsdk. The '&' operator is
called the reference operator. So by leaving it out you copy (the default
initialization) the resulting class object.

Maybe that does the trick.

T

-----Original Message-----
From: Ian Barnes [mailto:ian@xxxxxxxxxxxx] 
Sent: 08 September 2005 08:52 AM
To: 'Thomas'
Subject: RE:  Help with Class

Sorry for the stupid question. How do I init the class as a copy not a
reference ?

-----Original Message-----
From: Thomas [mailto:tomatosh@xxxxxxxxx] 
Sent: 08 September 2005 08:25 AM
To: 'Ian Barnes'
Subject: RE:  Help with Class

Hmm, that is strange because OO tells us that by nulling an object you
destroy it. I don't see what the other person could have done to avoid the
destruction of his class ... (that would be above my head)

One more thing I would try (which you have not done yet) is to initialize
the class as a copy and not a reference. That should not impair your code
much because you are creating a new one ever time anyway.

> think it cant be done
That would somehow go against my understanding of OO programming ;-) ...

Good luck.

Thomas

-----Original Message-----
From: Ian Barnes [mailto:ian@xxxxxxxxxxxx] 
Sent: 08 September 2005 08:07 AM
To: 'Thomas'
Subject: RE:  Help with Class

Hi,

I put the db object in there temporarily because the SDK class resets it and
I haven't gotten round to changing it yet. 

I tried initing $SDK to null at the start but that hasn't worked either.

The class that I initing isn't mine, it was written by someone else and they
don't allow for multiple directories. The first run in the foreach loop runs
perfectly, I get all the info back I need, so its just when the loop runs
again. 

Here is my current code with all options I have tried:
foreach ( $forums as $num=>$val )
{
	$SDK=null;
	$sdk = null;
	$db = new db ( 'localhost' , 'user' , 'pass' , 'db' );
	$sql = 'SELECT * FROM vaults WHERE id = "'.$val.'"';
	$result = $db->get($sql);
	$fetchd = mysql_fetch_array ( $result );
	$forumid = $fetchd['forumid'];
	$posterid = $fetchd['posterid'];
	$title = $_POST['title'];
	$desc = $_POST['desc'];
	$post = $_POST['post'];
	require_once ( $fetchd['path'].'sdk/ipbsdk_class.inc.php' );
	$SDK =& new ipbsdk;
	$info = $SDK -> get_info ( $posterid );
	$postername = $info['name'];
	echo "Forum ID:".$forumid;
	echo "<BR>Title:".$title;
	echo "<BR>Desc:".$desc;
	echo "<BR>Post:".$post;
	echo "<BR>PosterID:".$posterid;
	echo "<BR>PosterName:".$postername;
	echo "<BR>";
//	if ($SDK -> new_topic($forumid, $title, $desc, $post, $posterid,
$postername)) {
//		echo 'Topic Created!';
//	} else {
//		echo $SDK->sdk_error();
//	}
	unset ( $sdk );
	$SDK = null;
	unset ( $SDK );
	$sdk = null;
	unset ( $GLOBALS['SDK']);
	unset ( $GLOBALS['sdk'] ) ;
	$GLOBALS['SDK'] = null;
	$GLOBALS['sdk'] = null;
	$_SESSION['sdk'] = null;
	$_SESSION['SDK'] = null;
	unset ( $_SESSION['SDK'] );
	unset ( $_SESSION['sdk'] );
	register_shutdown_function($SDK);
	register_shutdown_function($sdk);
}

So as you can see, I have tried a lot of things and im starting to think it
cant be done, in which case ill just have to take the other persons class
and either modify it (which is against his terms) or take what he does and
do it manually myself.

Thanks for the help.

Ian



-----Original Message-----
From: Thomas [mailto:tomatosh@xxxxxxxxx] 
Sent: 08 September 2005 07:54 AM
To: 'Ian Barnes'
Subject: RE:  Help with Class

First up, I am not sure if you need to create a new db object every single
loop, as far as I can see you can easily leave that outside the loop (unless
you connect to a different db on each loop).

Maybe you could initialize the $SDK variable on top of your loop with null
($SDK=null;) that way ever loop will serve you up with a 'nulled' $SDK
variable.

Does your current code not initialize the correct classes?

T

-----Original Message-----
From: Ian Barnes [mailto:ian@xxxxxxxxxxxx] 
Sent: 08 September 2005 07:19 AM
To: jason.davidson@xxxxxxxxx
Cc: 'PHP General'
Subject: RE:  Help with Class

Hi,

 

Thanks for the help, but none of those worked. 

 

Anyone else got any suggestions? Or possibly another way of achieving this ?

 

Cheers

Ian

 

  _____  

From: Jason Davidson [mailto:jason.davidson@xxxxxxxxx] 
Sent: 07 September 2005 05:47 PM
To: Ian Barnes
Cc: PHP General
Subject: Re:  Help with Class

 

I would have guessed unset($sqk); to work, but also try $sdk = null;

Jason

On 9/7/05, Ian Barnes <ian@xxxxxxxxxxxx> wrote:

Hi,



I am writing a site where I need to access multiple classes of the same name
located under certain directories. The reason for each directory is because
the class under that directory talks only to the files in that directory and

cant do multiple (its not my software)



I have it so that I choose which ones I want to "post" to via checkboxes. I
then do a foreach loop and here it is:



                        foreach ( $forums as $num=>$val )

                        {

                                    $db = new db ( 'localhost' , 'user' ,
'pass' , 'db' );

                                    $sql = 'SELECT * FROM table WHERE id =
"'.$val.'"';

                                    $result = $db->get($sql);

                                    $fetchd = mysql_fetch_array ( $result );

                                    $forumid = $fetchd['forumid'];

                                    $posterid = $fetchd['posterid'];

                                    $title = $_POST['title'];

                                    $desc = $_POST['desc'];

                                    $post = $_POST['post'];

                                    require_once (
$fetchd['path'].'sdk/ipbsdk_class.inc.php' );

                                    $SDK =& new ipbsdk;

                                    $info = $SDK -> get_info ( $posterid );

                                    $postername = $info['name'];

                                    echo "Forum ID:".$forumid;

                                    echo "<BR>Title:".$title;

                                    echo "<BR>Desc:".$desc;

                                    echo "<BR>Post:".$post;

                                    echo "<BR>PosterID:".$posterid;

                                    echo "<BR>PosterName:".$postername;

                                    echo "<BR>";

                        }



See at the end of that foreach loop I need to unset the class $SDK so I can
re-init it from another dir. How can I do this? I have tried some of the 
following:

Unset ( $SDK);

Unset ($GLOBALS['SDK'] );





Can anyone shed any light on my predicament ?



Thanks in advance

Cheers

Ian

--
PHP General Mailing List ( http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux