【问题标题】:PHP short way to echo string?PHP回显字符串的简短方法?
【发布时间】:2014-11-22 06:17:38
【问题描述】:

PHP 我们echo 这样的字符串:

echo 'string';

但我看到 PHP 框架如 Laravel 和脚本 echo 使用 Curly Brackets 的字符串:

{string}

不使用任何PHP 框架我怎么能做到这一点?

如果有其他方法可以缩短回显,则不必使用Curly Brackets

我更喜欢代码示例。

【问题讨论】:

  • Laravel 使用模板引擎Blade(默认),这就是为什么语法和 php 不一样。
  • 我不再使用 PHP,但也许您可以查看文档以查找与 Regex 的特定匹配,然后在 {} 之间回显任何内容。

标签: php echo curly-braces curly-brackets


【解决方案1】:

PHP 有几种打印字符串的方法,例如(但不限于)printecho 或简写 <?= "str" ?>
您从 laravel 中询问的括号打印在 php 中并不是按照说法。
这是来自一个名为Blade 的模板引擎。

所以{} 打印东西的方式在 php 中是不可能的。
您将不得不坚持标准方式或使用模板引擎!

【讨论】:

  • 但我看到一个 php 脚本(不是框架)使用这种方式来回显 {string} 并在 html 文件中工作!感谢您的信息。
  • php 文件的名称是:somename.blade.php? :)
  • 不,它被命名为 file.html
  • 它可以让引擎寻找 php 或 html 文件(没有刀片部分)作为刀片模板。我没有尝试过这个,所以我不能 100% 确定它是如何工作的,我不推荐这个,因为如果它在文件名中,它更容易看出它是一个刀片模板! :) View::addExtension('php', 'html');
【解决方案2】:

你可以通过

短回声

<?= $variable; ?> 当你打开一个新的 php 标签时

或者您使用,如您的问题中所述,使用 laravel 之类的框架 - 差不多就是这样

您可以做什么,但我不确定这是否是个好主意 - 编写如下函数:

function x($string) {
    echo $string;
}

x('Test');  // will output Test

【讨论】:

  • 除了谈论 Laravel,我看到一个 php 脚本使用这种方式来回显 {string} .. 我认为这是一种编码方式或插件/引擎,但我真的不知道是什么它!顺便说一下函数解法不错!
  • 尽管可以创建一个更短的函数,但我不建议这样做,它会使代码更难阅读和理解,这不是一件好事。 (是的,我注意到答案说这可能不是一个好主意,我只是支持!)
  • 谢谢!不确定 {},我还没有在 laravel 和 MVC 之外看到它
【解决方案3】:

简短的回答是你不能用 PHP 做到这一点。 PHP 提供语言构造以输出到标准输出等。PHP 不提供预处理器。大多数模板框架都是预处理器,这意味着它们会将您的{<STRING>} 转换为echo $x 语句。

所以要么创建自己的模板框架,要么坚持使用 PHP 的 API。

【讨论】:

  • 关于创建我自己的模板,我只是想做回显方式 {string} 而不是从头开始创建 php 框架,我发誓我看到了一个使用这种方式的 php 脚本(不是框架) echo {string} 也可以在 html 文件中工作!感谢您的信息。
  • 链接到 PHP 脚本...?
  • 这是脚本,转到“Templates”目录并打开例如“links.html”,您会看到他正在使用 {} 来回显:goo.gl/JWGPL6
  • 对不起,这是脚本的链接:www31.zippyshare.com/v/17537696/file.html
【解决方案4】:

经过研究,我发现了一个名为SmartyTemplate Engine,它允许我使用Curly Brackets 回显

首先我创建了2个文件index.phptemplate.html

然后我将我从template page 下载的文件夹/libs 移动到我的脚本目录

在我的index.php 中,我需要Smarty.class 文件

require_once "libs/Smarty.class.php";

然后我调用了Smarty 类:

$smarty = new Smarty;

之后我推送了变量:

$smarty ->assign("name",'Amr');

我显示了模板文件index.html

$smarty ->display("template.html");

最后我写在index.html <p>{$name}</p> 并输出:Amr

【讨论】:

    猜你喜欢
    • 2017-06-09
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多