JavaScript风格的PHP包装
JavaScript style wrapping in PHP
我主要是一个JS开发人员,使用PHP的服务器端踢我想看看是否有一个方法在PHP类似于JS:
var something = {
action1: function() { alert('Fire 1!'); },
action2: function() { alert('Fire 2!'); },
action3: function() { alert('Fire 3!'); }
}
然后允许我调用:
something.action2(); // Alerts 'Fire 2!'
这是一个相对较小的应用程序,我正在工作,我想避免构建类。由于PHP是如此小的一部分,我希望尽可能保持代码风格相似。
使用关联数组和匿名函数(必须至少有PHP 5.3)将为您工作:
$arr = array(
'action1' => function() { echo "Fire 1'n"; },
'action2' => function() { echo "Fire 2'n"; },
'action3' => function() { echo "Fire 3'n"; }
);
$arr['action1'](); // Fire 1
请记住,使用$this
(JavaScript中的this
)将无法从函数中访问其他函数或数组项。
PHP没有JavaScript那样的对象形式,因为PHP是一种基于类的语言,而JavaScript是一种基于原型的语言。这实际上意味着PHP通过实例化类来创建对象。然而,JavaScript有对象,然后克隆创建新对象。
如果你想让你的代码易于理解,我建议使用PHP类:
class SomeClass {
function alert($string) {
// Do something
}
function action1() {
$this->alert('Fire 1!');
}
function action2() {
$this->alert('Fire 2!');
}
function action3() {
$this->alert('Fire 3!');
}
}
$something = new SomeClass();
$something->action2(); // Runs the action2 function of your object
或者是静态类?
<?php
class something {
public static function action1 () {
echo 'Fire 1';
}
public static function action2 () {
echo 'Fire 2';
}
public static function action3 () {
echo 'Fire 3';
}
}
something::action1();
something::action2();
something::action3();
这就可以了(假设你想创建3个这样的警报:p)。
<?php
//Array of Functions
$a = array
(
'action1' => function() { echo "<script>alert('Fire 1!');</script>"; },
'action2' => function() { echo "<script>alert('Fire 2!');</script>"; },
'action3' => function() { echo "<script>alert('Fire 3!');</script>"; }
);
$a['action1'](); // Fire 1
$a['action2'](); // Fire 2
$a['action3'](); // Fire 3
?>
对Tim Cooper回答的修改
$o = (object) array(
'action1' => function() { echo "Fire 1'n"; },
'action2' => function() { echo "Fire 2'n"; },
'action3' => function() { echo "Fire 3'n"; }
);
$o->action2();
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 将数组从PHP传递到Javascript
- 如何在php文件中获取$.post-ajax传递的值
- 如何将函数包装在函数中以避免代码重复
- Javascript运行php文件,然后下载文件
- PHP中的setcookie仅适用于localhost
- 如何使用jquery处理php循环通过元素
- 通过Ajax将JavaScript函数传递给PHP文件
- 而循环只设置php中输入字段中的第一个值
- 我需要从php调用javascript或jquery
- 如何通过php页面将数据库值检索到jquery自动完成框中
- PHP AJAX图片上传示例不上传
- 通过php页面中的js强制下载txt
- JavaScript风格的PHP包装
- 在javascript包装的php语句上循环使用php
- 如何上传android和iso应用程序包含mysql / php和包装与phonegap
- PHP 将每 3 个元素包装在 TR for 表中
- 将 Jquery 包装在 PHP 中