在PHP中是否有与新的ASP.NET razor语法相当的功能?Razor语法PHP等效
回答
的唯一利刃般的语法,PHP也有类似的东西是什么,我相信被称为 “变量扩展”:
$two = "Two";
echo "One $two Three";
结果:
One Two Three
但是,你不能在PHP块之外或者在这种情况下使用双字符串以外的内容(至少不是您想要如何使用它)。这不起作用:
<?php
$two = "Two";
?>
<p>One $two Three</p>
结果:
<p>One $two Three</p>
其他PHP编程构建PHP模块之外什么都不做也。所以,这些东西都没有在PHP中并行:http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx
最接近你会发现是在Fat-Free Framework的模板引擎,但它需要你使用花括号。相反,PHP的详细<?php echo $x['y']['z']; ?>
或短标签相当于<?=$x['y']['z']?>
,无脂肪的用途{@x.y.z}
我刚看“剃刀语法”了,它看上去不错足以让ASP.NET。在PHP中,虽然我会应用某种模板框架(我通常使用自己的Smarty)来获得一些漂亮的外观清晰的HTML页面,只需要最少的控制结构和可变的引用。
每当有人说“Smarty”时,我必须发布两个链接:一个用于无脂选择,[Dwoo](http://dwoo.org/) - 另一个用于我自己的超薄引擎,[Outline] (http://outline.mindplay.dk/)...我不只是无耻地在这里插入我自己的引擎 - Smarty是一种恐龙,并且有很多更好的替代PHP的模板... – 2011-03-31 12:23:31
有剃刀般的视图引擎Yii框架:
http://www.yiiframework.com/extension/razorviewrenderer
这很简单 - 它似乎并没有什么真正的Yii依赖关系,所以我无法想象将很难从Yii中拿出来并在不同的环境中使用它。
请注意,这只是一个Razor风格的模板分析器 - 它将Razor风格的模板编译为普通的香草PHP脚本。它依赖于Yii的实际视图引擎。
感谢@ mindplay.dk链接到Yii框架的Razor View Renderer!如果您正在寻找PHP的独立模板引擎,我想分享最近的发现Twig(http://www.twig-project.org/)作为替代方案。这不是Razor语法,但它是简单的和可扩展的。
下面是从该网站的一些例子:
对于每个:
{% for user in users %}
* {{ user.name }}
{% else %}
No user has been found.
{% endfor %}
块&继承:
{% extends "layout.html" %}
{% block content %}
Content of the page...
{% endblock %}
过滤器:
{{ "now"|date("m/d/Y") }}
{{ "I like %s and %s."|format(foo, "bar") }}
returns: I like foo and bar. (if the foo parameter equals to the foo string)
我还在做一些初步的开发&测试这个引擎,我很喜欢它到目前为止!
似乎有人做到了:https://github.com/steffans/razr
但我仍然会转换成嫩枝,它更强大。
Laravel的刀片模板引擎,使用类似Razor的语法。 https://laravel.com/docs/master/blade
- 1. sed等效语法为pcre
- 2. 等效WPF绑定语法
- 3. PostgreSQL的等效语法FORALL
- 4. 将C#Razor语法转换为VB.NET Razor
- 5. linq拼图...等效的语法...不等效的结果!
- 6. 等效在PHP
- 7. RAZOR语法生成菜单
- 8. Umbraco Razor语法问题
- 9. 语法问题 - Razor MVC4
- 10. @Code的Razor语法简写
- 11. Razor视图引擎语法
- 12. asp.net razor如果语法
- 13. Razor语法For Each with String.Format
- 14. C#中的等效语法是什么?
- 15. Cloud Spanner - “SHOW TABLES”的等效语法?
- 16. Haskell - Lambda微积分等效语法?
- 17. 等效AWK的语法[X] [0] + = $ 16
- 18. 等效的JavaScript/Ruby的语法的jQuery
- 19. protobuf中#ifdef语法的等效代码
- 20. 等号中的语法无效
- 21. 当嵌套的Razor语句存在时,无法使Razor语法工作
- 22. mongodb num_rows等效php
- 23. 等效采用PHP
- 24. char.IsLetterOrDigit等效于php
- 25. PHP鲜明等效
- 26. Url.Content()等效于php?
- 27. PHP等效的Javascript%
- 28. php checkdnsrr java等效
- 29. cURL到PHP等效
- 30. PHP等效的DataTable
你的第一个例子是在字符串赋值后缺少';'。 – 2010-09-05 14:05:38
@Russell Dias - 谢谢,我没有发现! – 2010-09-05 14:10:02
我的php很生锈,但不能使用=$two?> – pqsk 2013-12-08 04:44:56