2

PHP我们这样echo字符串中:

echo 'string';

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

{string}

我如何在不使用任何PHP框架的情况下做到这一点?

Curly Brackets如果有其他方法可以缩短回声,则无需使用!

我更喜欢代码示例。

4

4 回答 4

7

PHP 有一些打印字符串的方法,例如(但不限于)print,和echo或只是简写<?= "str" ?>
您从 laravel 中询问的括号打印在 php 中并不是按照说法。
那来自一个名为Blade.

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

于 2014-11-22T06:27:47.517 回答
5

你可以通过短回声

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

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

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

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

x('Test');  // will output Test
于 2014-11-22T06:23:45.503 回答
2

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

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

于 2014-11-22T06:33:51.617 回答
0

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

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

然后我将我从模板页面/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

于 2014-11-22T07:31:22.387 回答