Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2012, 15:05
Профессор
Отправить личное сообщение для kilogram Посмотреть профиль Найти все сообщения от kilogram
 
Регистрация: 19.03.2012
Сообщений: 163

БЫстрая сортировка
<?php 
$mas = array(5,3,-1,4,2,-300,6,-500,-100);
function sos($a1,$a2)
{
	return $a2 - $a1;
}
function dobavka(&$mas, $func){
   sortirovka($mas, 0, count($mas)-1, $func);
}

function sortirovka(&$mas,$min,$max,$func){
$i = $min;
$j = $max;
$x = $mas[($min+$max)/2];

do{
	while($func($mas[$i], $x)<0) ++$i;
	while($func($mas[$j], $x)>0) --$j;
    if($i<=$j){
		 $element = $mas[$i];
		 $mas[$i] = $mas[$j];
		 $mas[$j] = $element;	
		 $i++; $j--;
}   
}while($i<=$j);

if($min<$j) sortirovka($mas,$min,$j, $func); //начало с серединой 
if($i<$max) sortirovka($mas,$i,$max, $func); // середина с концом
}

dobavka($mas, 'sos');
foreach($mas as $rez)
echo $rez.' '.' ';

?>


Смущает, как в переменную $func можно добавить круглые скобки и записать выражение?
while($func($mas[$i], $x)<0) ++$i;
	while($func($mas[$j], $x)>0) --$j;

Что это означает? С функцией понимаю ,а вот с переменной, как она со скобками и внутри выражение?
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2012, 21:58
Профессор
Отправить личное сообщение для kilogram Посмотреть профиль Найти все сообщения от kilogram
 
Регистрация: 19.03.2012
Сообщений: 163

Попробовал написать такой код, который вычисляет квдадрат числа.

function santa($n)
{
   return $n*$n;
}

function balta($n)
{
   return $n(5);
}

echo balta("santa");
echo '<br />';

Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало.
Это что, получается я передал всю функцию санта в функции балта?
В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2012, 22:05
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kilogram
В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?
передается строка
но когда вы пишите
Сообщение от kilogram
$n(5)
, то вы вызываете функцию с именем которое содержится в переменной(строке) $n если такая функция существует
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2012, 00:52
Профессор
Отправить личное сообщение для kilogram Посмотреть профиль Найти все сообщения от kilogram
 
Регистрация: 19.03.2012
Сообщений: 163

Я так понял интерпретатор языка ПХП когда видит название переменной, а за ней скобки, подставляет значение этой переменной в название этой переменной со скобками,если значение этой переменной совпало с названием такой функции описаной где-то в коде.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка и фильтрация json jQuery amt779 jQuery 4 28.07.2011 12:53
Сортировка и фильтрация в селекторе amt779 jQuery 1 08.07.2011 03:09
Template CMS - маленькая и быстрая CMS Awilum Ваши сайты и скрипты 3 22.09.2010 23:19
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02