2011-11-02 33 views
-4

爲什麼php函數或類不能像jquery/javascript插件一樣工作?爲什麼php函數或類不能像jquery插件一樣工作?

例如,

一個jQuery插件,

(function($){ 

    // Attach this new method to jQuery 
    $.fn.extend({ 

     // This is where you write your plugin's name 
     popup: function(options) { 

      // Set the default values, use comma to separate the settings, example: 
      var defaults = { 
       widthPopup:   500, 
       absoluteLeft:  '500px' 
      } 

      var options = $.extend(defaults, options); 
      var o = options; 

      var $cm = this.click(function(e){ 

       ... 

       return false; 

      }); 

     } 
    }); 

})(jQuery); 

,然後這裏是你如何使用插件,

$('.click-me').popup(); 

$('.click-me').popup({widthPopup:300,absoluteLeft:'50%' }); 

$('.click-me').popup({absoluteLeft:'50%' }); 

爲一個PHP函數,

function test($parameter_1 = 100, $parameter_2 = false) { 
.... 
} 

,你必須這樣調用該函數,

echo test(); 

echo test($parameter_1 = 50, $parameter_2 = true); 

echo test(10, true); 

,如果你這樣調用該函數將無法正常工作,

echo test($parameter_2 = true); 

你能看到什麼,我發現PHP是任意的,有點「落後」?

或者也許有一些先進水平的PHP我還沒有學會?

+1

落後?他們不是同一種語言。無法像這樣比較它們。自然的建議是學習語言並根據需要使用它,不要期望它與另一個相同 –

+1

爲什麼橙子不能像蘋果? –

回答

1

你所描述的是兩件不同的事情。在JavaScript示例中,您傳遞的是關聯數組(hash,map,JSON,無論...),但在PHP中,您使用的是命名參數。

所以在PHP中的匹配代碼將

function test($parameters) { ... } 

,並通過

test(array('parameter_1' => 50, 'paramater2' => true)); 

調用它,它不美如JavaScript版本,但它做同樣的事情。基本上這裏唯一的區別是,在JavaScript中,你不必使用array()函數創建一個關聯數組,你可以只輸入

{ javascript: "is", cool: true } 

,它會工作。這裏的PHP替代是

array("javascript" => "is", "cool" => true) 
+0

謝謝Darth :-) – laukok

+1

酷!你在同一句話中使用了「javascript」和「beautiful」兩個字! –

+1

@LarryLustig考慮到人們使用的語言(Java,C++,PHP甚至是Python),JavaScript非常漂亮:)但只有知道如何使它變得美麗的人才能掌握。 –

3

您正在將散列作爲參數與普通參數混合使用。你仍然可以在PHP中做到這一點:

echo test(array('parameter_2' => true)); 
echo test(array('parameter_1' => false, 'parameter_2' => true)); 

但我懷疑你覺得這漂亮。

+0

感謝您的想法。是的,我不覺得它漂亮。只是想不出任何方法讓php變得「漂亮」! – laukok

+0

@topek看起來很華麗。 –

1

最大的原因是jQuery是一個原型語言的javascript。 PHP根本不是原型語言。

0

或者也許有一些先進的級別的PHP我還沒有學會?

是的,有一些基本的水平 PHP的你還沒有學會還

相關問題