1

我刚刚进入 OOP PHP 但有点卡住了。

基本上我想创建一个函数来创建对象,问题是我不能访问函数之外的对象:

$website0 = new website(0,'test','NameTest');
echo $website0 ->getProperty('name');

这行得通。然而:

createWebsitesFromDatabase();
echo $website0 ->getProperty('name');

function createWebsitesFromDatabase() {
    $website0 = new website (0,'test','NameTest');
}

不起作用。有任何想法吗?

4

3 回答 3

2

您必须使用返回值将创建的对象分配给函数外部的变量,这比在大多数情况下使用全局要好。

<?php
   function createWebsitesFromDatabase(){
       $insideVar = new website(0, 'test', 'NameTest');
       return $insideVar;
   }

   $website0 = createWebsitesFromDatabase();
   echo $website0->getProperty('name');
?>
于 2012-08-26T17:03:54.630 回答
1
function createWebsitesFromDatabase() {
   global $website0; // here is the trick
   $website0 = new website (0,'test','NameTest');
}

createWebsitesFromDatabase();    
echo $website0 ->getProperty('name');
于 2012-08-26T17:01:19.067 回答
0

做这个:

function createWebsitesFromDatabase() {
global $website0;
$website0 = new website (0,'test','NameTest');
}

这个链接应该澄清你的问题

http://php.net/manual/en/language.variables.scope.php

于 2012-08-26T17:02:54.643 回答