#php #javascript #jquery #oop #php-5.3
#php #javascript #jquery #ооп #php-5.3
Вопрос:
Почему функции или классы php не могут работать как плагины jquery / javascript?
Например,
плагин 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. отстаете? Это разные языки. Не могу их так сравнивать. Естественным предложением было бы выучить язык и использовать его по мере необходимости, а не ожидать, что он будет таким же, как другой
2. Почему апельсины не могут быть похожи на яблоки?
Ответ №1:
Вы смешиваете хэш в качестве аргумента с обычными аргументами. Вы все еще можете сделать это на PHP:
echo test(array('parameter_2' => true));
echo test(array('parameter_1' => false, 'parameter_2' => true));
Но я сомневаюсь, что вы находите это красивым.
Комментарии:
1. спасибо за мысли. да, я не нахожу это красивым. просто не могу придумать, как сделать php «красивым»!
Ответ №2:
То, что вы описываете, — это две разные вещи. В примере 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)
Комментарии:
1. Круто! Вы использовали слова «javascript» и «красивый» в одном предложении!
2. @LarryLustig Учитывая языки, которые используют люди (Java, C , PHP и даже Python), JavaScript очень красив 🙂 но только в руках человека, который знает, как сделать его красивым.
3. «JavaScript очень красивый», вот что я подумал, и именно поэтому я поднял вопрос о php — я знаю, что они разные. php может быть очень некрасиво закодирован, зависит от программиста.
Ответ №3:
Основная причина в том, что jQuery — это javascript, который является языком-прототипом. PHP просто не является языком-прототипом.
Ответ №4:
Или, может быть, есть какой-то продвинутый уровень php, который я еще не изучил??
Да, есть некоторый базовый уровень php, который вы еще не изучили