- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个显示用户列表的函数,它是 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() 的返回值。我觉得你很困惑this feature解析双引号字符串中的变量。这不适用于函数。
你也可以使用 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 引擎不会跟踪用户 session 期间的功能。
如果您在多个脚本中使用该函数,请将您的函数包含在某个“中央”文件和 include 中它在任何你需要的地方。我真的建议您阅读更多 PHP 和 include
;我不打算解释 PHP 的基础知识;你需要做更多的功课。
关于单引号内的 PHP 函数显示为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437975/
在线编写 yacc 代码的教程使用单引号表示分号和其他字符: ';' '+' '-' (etc) 但是在使用时: '' 在我将其更改为双引号之前,我遇到了错误: "" 相似地, '>=' '==
MySQL documentation说它应该是\'。然而,scite 和 mysql 都显示 '' 有效。我看到了,它有效。我该怎么办? 最佳答案 您引用的 MySQL 文档实际上比您提到的要多一些
MySQL documentation说它应该是\'。然而,scite 和 mysql 都显示 '' 有效。我看到了,它有效。我该怎么办? 最佳答案 您引用的 MySQL 文档实际上比您提到的要多一些
MySQL documentation说它应该是\'。然而,scite 和 mysql 都显示 '' 有效。我看到了,它有效。我该怎么办? 最佳答案 您引用的 MySQL 文档实际上比您提到的要多一些
MySQL documentation说它应该是\'。然而,scite 和 mysql 都显示 '' 有效。我看到了,它有效。我该怎么办? 最佳答案 您引用的 MySQL 文档实际上比您提到的要多一些
我一直在使用 SED (Bash shell) 转义单引号问题。 我需要做 $cfg['Servers'][$i]['password'] = ''; 进入 $cfg['Servers'][$i]['
需要将'替换为\'但这就是我得到的: >>> s = "It's nice to have an example" >>> s.replace("'", "\\'") "It\\'s nice to
我在处理连接字符串中的 ' 字符时遇到问题。 Entity Framework 抛出异常说: Format of the initialization string does not conform
我遇到了一个非常奇怪的问题,我无法设置 Content-Security-Policy 所需的单引号。我假设我运行的是旧版本的 ingress,它仅在我禁用并重新启用它 (microk8s) 后才得到
插入带有撇号的值的正确 SQL 语法是什么? Insert into Person (First, Last) Values 'Joe', 'O'Brien' 我不断收到错误,因为我认为
我有三列数据 selector label option list time you personally
我使用 Java Pattern 类将正则表达式指定为字符串。 举个例子我喜欢成为蜘蛛侠:“彼得·帕克” 应将蜘蛛侠和“Peter Parker”列为单独的标记。谢谢 try { Buffe
我正在尝试删除标记 ' (单引号)但我不知道如何。 我在做delm \'但它不起作用。我也尝试了我能想到的所有组合。 我意识到这更像是一个 Vim 脚本问题,但我在任何地方都找不到。 最佳答案 为什么
如何禁用红色突出显示的特定实例。 我尝试在单引号前输入转义符,但没有成功。我确信单引号导致了红色突出显示,因为当我删除它时,它就会消失。 代码如下: import React from 'react'
我需要输出单引号 (')。它必须是单引号而不是 ',因为这是用于向 jquery 函数提供数据的字符串的一部分。 我使用 C# 循环遍历一个对象来构建一个字符串 "var data = [['Item
我正在尝试: "l'ape"); ?> var my_javascript_object = jQuery.parseJSON(''); 我收到此错误“未捕获的语法错误:意外的标识符”。问题是
我的问题是关于传递给方法验证的“add\”反斜杠单引号,该反斜杠单代码有什么用? document.writeln('\',\'N\'))>'); 最佳答案 欢迎来到堆栈溢出。 反斜杠告诉代码这不是引
我要执行命令: xcodebuild -exportArchive -exportFormat IPA -archivePath myApp.xcarchive -exportPath myApp.i
我有一个字符串,里面有一个 ': example link text 不幸的是,这似乎不起作用。 Firebug 提示“SyntaxError:参数列表后缺少 )”,您可以看到 HTML 实体已被 '
据我所知,'mars%22%3A%22' 和 "mars%22%3A%22" 是等效的,因为没有任何内容被转义. 我创建 javscript 书签已经有一段时间了。有一次,当按原样粘贴到 Chrome
我是一名优秀的程序员,十分优秀!