访问PHP中函数创建的对象实例
我刚开始接触OOP PHP,但有点卡住了 基本上我想创建一个函数来创建对象,问题是我无法访问函数之外的对象:访问PHP中函数创建的对象实例,php,oop,function,Php,Oop,Function,我刚开始接触OOP PHP,但有点卡住了 基本上我想创建一个函数来创建对象,问题是我无法访问函数之外的对象: $website0 = new website(0,'test','NameTest'); echo $website0 ->getProperty('name'); 这很有效。然而: createWebsitesFromDatabase(); echo $website0 ->getProperty('name'); function createWebsitesFro
$website0 = new website(0,'test','NameTest');
echo $website0 ->getProperty('name');
这很有效。然而:
createWebsitesFromDatabase();
echo $website0 ->getProperty('name');
function createWebsitesFromDatabase() {
$website0 = new website (0,'test','NameTest');
}
不起作用。有什么想法吗?这样做:
function createWebsitesFromDatabase() {
global $website0; // here is the trick
$website0 = new website (0,'test','NameTest');
}
createWebsitesFromDatabase();
echo $website0 ->getProperty('name');
function createWebsitesFromDatabase() {
global $website0;
$website0 = new website (0,'test','NameTest');
}
这个链接应该可以澄清你的问题
您必须使用返回值将创建的对象分配给函数外部的变量,这比在大多数情况下使用全局变量要好
<?php
function createWebsitesFromDatabase(){
$insideVar = new website(0, 'test', 'NameTest');
return $insideVar;
}
$website0 = createWebsitesFromDatabase();
echo $website0->getProperty('name');
?>
这比使用global
要好得多。不过,请注意,名称是createWebSitesFromDatabase。如果名称准确,您可能希望返回一组网站。这一点很好,但整个代码只是一个很短的摘录,很难告诉您计划中的功能为什么比使用global更好?计划是从数据库中读取数据并从每个条目中创建对象-最后,我希望类本身中有一个静态函数来生成这些数据,以使其保持自包含状态,就像Nicolas Brown一样,我想指出的是,通过使用全局变量,如果使变量在作用域中可用,则可能不需要变量。如果你想保持它的独立性,global与你想做的恰恰相反。正如cHao所说,您可能希望返回一个数组,而不是使用$website0、$website1等。