0

我有一堂课...

class myclass {}
$myclass = new myclass();
$myclass->frigin = 'awesome';

稍后在另一个PHP 文件中,我有一些包含...

include('hippie_deflectors.php');

但是,其中包含的 PHP 根本看不到$myclass

让 PHP 服从的最简单方法是什么?


这个文件... .com/[module]/requested_page.php

...有两个包括从上到下过滤以下...

包括套装 1


.com/system/header.php

.com/system/header_classes.php[$myclass在这里定义]

包括套装 2


.com/[module]/index_get.php

.com/system/template_1.php

.com/system/includes_js.php

.com/system/scripts/onload.js[$myclass此处未定义]

4

2 回答 2

0

我意识到我的错误,希望其他人能从中吸取教训。虽然我遇到了范围问题(一个 PHP 文件包含另一个文件,然后只能通过将其作为参数传递给函数来访问一个类),但我最终意识到 JavaScript 文件是作为字符串输出的,而不是作为一个包括!这意味着 JavaScript 文件将使浏览器发出第二个请求,只有该文件会被 PHP 解析。

视觉上...

  • 客户端请求 [脚本元素的字符串中的 JavaScript 文件输出]
  • 客户端收到页面结果。
  • 客户端请求脚本文件。
  • PHP 在第二个/单独的请求上解析的脚本文件。

值得庆幸的是,由于我将事物编程为高度模块化的,因此我能够声明该类,创建它的新副本,然后包含一个模块化 PHP 文件,该文件不包含整个类,而是我需要的更小但更通用的变量块.

这并不能解决单独但相关的问题,即类只能在 X 数量的包含中访问,然后您必须将它们作为参数传递给函数。

于 2012-10-25T20:43:46.500 回答
0

你的问题有点理解。但这会起作用:

文件:File1.php

class myclass {}
$myclass->frigin = 'awesome';
include('hippie_deflectors.php');

文件:hippie_deflectors.php

include('different_file.php');

文件:不同的文件.php

var_dump($myclass);

将打印:

object(stdClass)#1 (1) { ["frigin"]=> string(7) "awesome" } 

这是你的设置吗?

于 2012-10-25T18:45:33.607 回答