Javascript ve PHP arasındaki kod denklik

2 Cevap php

Ben PHP öğrenmek için çalışıyorum ve bazı fonksiyon denklik yapılar olup olmadığını bilmek istiyoruz:

JS yapabilirim:

var t = function() {};
t();

myObj.DoStuff = function() {} // here I add a method at run-time
myObj.DoStuff();
myObj["DoStuff"]();

var j =  myObj.DoStuff;
j();

ve böylece fonksiyon değerlendirilmesi ile diğer şeyler.

In Js objects are associative arrays so every properties is accessible with the subscript notation...

Ben bir sınıf şablonu için çalışma zamanında bir yöntem ekleyebilirsiniz böylece yanındaki nesne örnekleri o olabilir?

JS Ben bir prototip işlevi özelliği ile bunu yapabilirsiniz.

2 Cevap

Bu mümkündür, ama bu iyi bir uygulama ya da bir günlük bazda yapmak istediğim bir şey, sağlıklı ve değil değil. JavaScript ve PHP farklı JavaScript onlar nesneler ve fonksiyonlar PHP, Sınıflar ve yöntemleri kullanmak olacaktır düzenlenmektedir.

Burada hiçbir anonim fonksiyonlar vardır 5.2 + ile yazılmış yapmak için çalışıyoruz ne bir örnek:

<?php

/*
var t = function() {};
t();
*/

function _t() {
    echo '<br>T';
}

$t = '_t';
$t();

/*
myObj.DoStuff = function() {} // here I add a method at run-time
myObj.DoStuff();
myObj["DoStuff"]();

var j =  myObj.DoStuff;
j();
*/
class myObj {
    var $doStuff = '';
}

function _DoStuff() {
    echo '<br>Do Stuff';
}

$myObj = new myObj();
$myObj->doStuff = '_DoStuff';
$j = $myObj->doStuff;
$j();

?>

Hatta bunu yapabilirsiniz 5,3 + onlar anonymouse fonksiyonları tanıttı

$t = function() {
    echo 'T';
}
$t();

Burada hakkında daha fazla Anonim işlevler - http://php.net/manual/en/functions.anonymous.php

Ben çoğunlukla yararlı olduğu Variable function names hakkında daha fazla okumak için tavsiye ederiz.

Ayrıca dinamik yapmanız çalıştığınız ikinci şey bir sınıf içinde işlevlerini enjekte edebilir, ama genel olarak iyi bir fikir değildir. http://www.gen-x-design.com/archives/dynamically-add-functions-to-php-classes/ - Bir adam ki burada bazı çalışmalar yaptım

Temelde, PHP mümkün değil. Eğer bazı durumlarda ancak JavaScript prototipleri ile yapabileceklerimizin yakın şey (sihir __call yöntemi kullanarak gibi) yeni nesnelere bir işlevsellik eklemek sağlayan bazı hileler vardır.

Eğer bir sunucu tarafı dilde benzer bir şey gerekiyorsa Python yerine PHP öğrenmek isteyebilirsiniz.