Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 类似$smarty->;不假思索地分配_Php_Smarty_Variable Assignment - Fatal编程技术网

Php 类似$smarty->;不假思索地分配

Php 类似$smarty->;不假思索地分配,php,smarty,variable-assignment,Php,Smarty,Variable Assignment,我知道这个问题可能很傻,但我读过很多关于smarty滞后和bug的谣言,我真的不想谈这些,但我确实想使用舒适的模板来编写脚本 我要找的是一个函数集或只是一个脚本,这样我就可以使用$smarty->assign之类的东西,这样我就可以在模板中使用生成的代码,例如{$username},而不是整个 除了得到一个完整的模板引擎,还有什么更简单的选择吗?我认为你应该重新考虑你的观点 第一条规则是所有模板引擎和其他脚本都有一些bug,使用任何东西(甚至OOP)都可能会使代码运行变慢。甚至PHP也有很多bu

我知道这个问题可能很傻,但我读过很多关于smarty滞后和bug的谣言,我真的不想谈这些,但我确实想使用舒适的模板来编写脚本

我要找的是一个函数集或只是一个脚本,这样我就可以使用$smarty->assign之类的东西,这样我就可以在模板中使用生成的代码,例如{$username},而不是整个


除了得到一个完整的模板引擎,还有什么更简单的选择吗?我认为你应该重新考虑你的观点

第一条规则是所有模板引擎和其他脚本都有一些bug,使用任何东西(甚至OOP)都可能会使代码运行变慢。甚至PHP也有很多bug(有些已经多年没有修复),您可能仍然在使用它。所以,要么你只考虑缺陷和速度,要么考虑功能和良好实践,你不可能总是同时做到这两个

第二件事是,正如有人在评论中提到的,有很多PHP模板引擎。Smarty是最受欢迎和最知名的,但也有其他的,例如Twig。哪一个对你更合适?很难说。哪一个性能最好?很难说,很多性能测试都是相互矛盾的,看看其中一个,你可能会发现Smarty是最好、最快的,而在另一个测试中,Smarty是最慢的

我认为,创建自己的模板引擎没有多大意义。例如,您提到希望使用
{$username}
。但是循环和控制结构呢?是否要在模板引擎中对它们进行编码?在这种情况下,性能如何?你确定你的模板引擎会更好,更快,不会有任何错误吗

所有这些问题都很重要,因为您需要知道,始终使用任何类型的库都很可能会有一些bug,而不总是创建自己的库会更好(可能通常不会)

如果你还想创建自己的“模板引擎”,我认为没有必要。您应该简单地使用本机PHP代码来实现这一点。如果您的代码将在PHP5.4+中使用,无论设置如何,而不是使用
,则可以简单地使用
。在以前的版本中,您需要确保将
short\u open\u标记设置为1。此设置是否优于
{$username}
?可能不会,但我认为使用它而不是创建自己的模板引擎已经足够好了


最重要的是将逻辑与显示分离。因此,在纯PHP文件(不含HTML/CSV/…代码)中,您应该简单地从数据库中获取数据,进行计算,等等;在模板文件(也可能是PHP文件,但与HTML混合)中,如果您担心有关Smarty的“谣言”,您可以简单地使用
。是的,使用PHP。这是一种模板语言。@作为模板语言使用的meagar PHP往往是一种可怕的混搭语言,我希望看到的少一些。。一个单独的模板系统(即使是使用PHP语法/处理的模板系统)是朝着正确方向迈出的一步。问题是,它们非常庞大,当然我必须使用一个可用的模板引擎,但前提是没有更简单的方法that@user2864740不,真的不是。如果在视图中混用前端和后端逻辑,PHP作为模板语言只是一个可怕的混搭。这不是PHP的错,这是程序员的错。我会看看Twig和Smarty,希望他们不会让我的脚本过载,我不会真的认为我自己的模板引擎会有很多bug,功能非常有限。谢谢
$o = new Output();
$o->assign('test_value', $username);
<input type="text" name"test" value="<?= $o->test_value ?>" />