我有一个显示用户的列表,它是一个功能displayUsers()
基本上代替具有用于每个页面1个不同php文件的,我使用了一个开关函数来加载像的内容。 这是的各页的1一个例子。
switch($_GET['page']) {
case '#userlist' : $page = '
<div class="innerbox">
displayUsers();
</div> '; break;
}
正如你可以看到它应该显示div
标签并加载功能,但不是加载的功能,只是显示文本“displayUsers()”。 我明白为什么它是这样做的,但是我不知道如何去改变它,这样实际上是运行宁可显示它的功能。 任何帮助将非常感激。
问候
displayUsers()
是引号内。 它解释为一个字符串。 你要
switch($_GET['page']) {
case '#userlist': $page = '<div class="innerbox">' . displayUsers() . '</div>'; break;
}
此串接displayUsers()中的字符串内的返回值,假设displayUsers()返回的代码。 我想你混淆了此功能 ,其中双引号内的字符串变量的分析。 这并不适用于功能的工作。
你也可以使用case '#userlist': $page = sprintf('<div class="innerbox">%s</div>', displayUsers(); break;
阅读关于sprintf的位置: http://php.net/manual/en/function.sprintf.php
如果displayUsers()
实际输出代码本身,那么你可以使用
switch($_GET['page']) {
case '#userlist': echo '<div class="innerbox">'; displayUsers(); echo '</div>'; break;
}
所发生的是被印刷的标签的开口,则该函数被调用(打印的代码),则结束标记被印刷,以该顺序。
如果您收到function not defined()
然后它也正是它听起来像。 该功能还没有在当前脚本被定义。
PHP是如何工作的每一个页面被请求时(有人去“foo.php”),您的服务器和PHP引擎会从某些目录中的文件(foo.php),解析它,和(通常)将回馈用户在HTML文档的形式。 每个页面就像是一个“脚本”,有点像被编译,执行一次, 忘了一个小型的应用程序。
因此,让我们自己的主页上说你有displayUsers()
定义。
//index.php
function displayUsers() {
//some code...
}
echo "Welcome to my website!", "<br />", 'Click <a href="foo.php">Here</a>.';
当有人进入到您的主页, displayUsers()
的定义,耶! 然而,它的被遗忘的权利后- PHP引擎已经丢弃了脚本,它的加载后结束,当然不知道什么displayUsers()
是你到达的时间foo.php
。
所以,你可以做什么? 如果你只使用一个页面的功能,声明它在该网页。 请记住,每个文件被认为是一个脚本。 PHP引擎不跟踪的功能,在用户的会话。
如果您使用在多个脚本的功能,包括你的功能在某些“中心”的文件, 包括它无论你需要它。 我真的建议你阅读更多到PHP和include
; 我不打算解释PHP的基本知识; 你需要做一些功课多。
您需要使用的。 (点)使用singleqotes时追加字符串:
$page = '<div class="innerbox">'.displayUsers().'</div>';
尝试这个
case '#userlist' : $page = '
<div class="innerbox">'
.displayUsers().
'</div> '; break;
使用连接.
操作是这样的:
switch($_GET['page']) {
case '#userlist':
$page = '
<div class="innerbox">'
. displayUsers() .
'</div> ';
break;
}