1

我想在另一个 php 文件中使用变量作为类。但我总是得到错误:注意:未定义的变量:...

首先:我创建一个用户对象:文件:index.php

<?php

// include the configs / constants for the db connection
require_once("config/config.php");

// load the user class
require_once("classes/User.php");

$user = new User();

include("views/order.php");

文件:用户.php

class User
{
   public $color = "green";
}

文件 livesearch.php

require_once("../classes/User.php");

echo $User->color;

我在 index.php 文件中从类用户创建一个对象,我还使用了一次对 User.php 文件的要求,它可以工作。为什么我不能访问类的变量?

4

3 回答 3

4

PHP 中的变量名区分大小写:

echo $User->color;

应该

echo $user->color;

此外livesearch.phpindex.php除非:

  • 它包含在index.php. 在这种情况下,它可以访问在index.php包含之前分配的所有变量。
  • livesearch.php包括index.php. 在这种情况下,它可以访问在包含index.php点之后分配的所有变量index.php

例如。您的文件,但稍作修改:

文件:index.php

// load the user class
require_once("User.php");

$user = new User();

include("livesearch.php");

文件:用户.php

class User
{
   public $color = "green";
}

文件:livesearch.php

echo $User->color;

和写法一样:

// From User.php
class User
{
   public $color = "green";
}

// From index.php
$user = new User();

// From livesearch.php
echo $User->color;
于 2013-10-10T14:58:08.417 回答
0

PHP 文件 livesearch.php :

 require_once("../classes/User.php");

 $user = new User;
 echo $user->color;
于 2013-10-10T14:58:52.783 回答
0

您应该使用单例设计模式来提高速度。在这种情况下,我不推荐这种用法。( this->color 代替 user::color )。

研究设计模式,多态性。

回答

  • userclass.php 类用户 { public $color = "green"; }

$用户=新用户;

  • livesearch.php require_once("../classes/User.php");

回声$用户->颜色;

于 2013-10-10T15:04:21.073 回答