Re: [PHP] Classes and access to outside variables
- From: malterisio777@xxxxxxxxx ("Martin Alterisio")
- Date: Sun, 30 Sep 2007 11:47:37 -0300
That's incorrectly syntactically. Won't run.
----
Ok, let's write some code to show how this can be done:
class SearchHelper extends AjaxACApplication {
private $dbh;
public function __construct() {
$this->dbh = $GLOBALS['dbh'];
}
}
----
Better yet, pass the database host in the construction:
class SearchHelper extends AjaxACApplication {
private $dbh;
public function __construct($dbh) {
$this->dbh = $dbh;
}
}
$searchHelper = new SearchHelper($dbh);
----
Even better, DON'T use globals:
class DatabaseConnectionInfo {
private var $host;
...
public function getHost() {
return $this->host();
}
...
private static $defaultConnectionInfo;
public static function getDefault() {
if (self::$defaultConnectionInfo === null) {
...build default connection...
}
return self::$defaultConnectionInfo;
}
}
class SearchHelper extends AjaxACApplication {
private $dbh;
public function __construct(DatabaseConnectionInfo $connectionInfo = null)
{
if ($connectionInfo === null) {
$connectionInfo = DatabaseConnectionInfo::getDefault();
}
$this->dbh = $connectionInfo->getHost();
}
}
Yes, I know what you're thinking, too much more code for just a stupid
thing. Trust me, refactoring it's easier when the code was written right the
first time.
2007/9/30, 潘志彬 <ryu.pan@xxxxxxxxx>:
$dbh = 'test';
class search_helper extends AjaxACApplication
{
/**
* Database connection details
*/
// announce global variable before use it
global $dbh;
$db_hostname = $dbh;
...
Regards,
Ryu
2007/9/29, Merlin <ngroups@xxxxxxxxxxx>:
Hi there,
I am new to PHP classes and I do want to access a variable outside the
class, but somehow that does not work. global also does not have any
effect.
In the following example I would like to be able to access $dbh from
inside the class like I did in that example. This does not work. Can
somebody please give me a hint on the right syntax?
$dbh = 'test';
class search_helper extends AjaxACApplication
{
/**
* Database connection details
*/
var $db_hostname = $dbh;
Thank you for any help,
Merlin
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
- References:
- Classes and access to outside variables
- From: Merlin
- Re: [PHP] Classes and access to outside variables
- From: "潘志彬"
- Classes and access to outside variables
- Prev by Date: Content Page Identification
- Next by Date: Re: Beginner Tutorials for using CLASSES in PHP4
- Previous by thread: Re: [PHP] Classes and access to outside variables
- Next by thread: Beginner Tutorials for using CLASSES in PHP4
- Index(es):