Помощник
|
Быстрая сортировка |
kilogram
|
Сообщение
#1
|
||
|
|
||
|
|||
BoL4oNoK |
28.4.2012, 15:37;
Ответить: BoL4oNoK
Сообщение
#2
|
|
Если $func является какой-то функции, то проблем нет - с 0 сравниваться будет результат данной функции.
Смущает, как в переменную $func можно добавить круглые скобки и записать выражение? Что Вам на выходе получит-то надо? |
|
|
Arks |
28.4.2012, 20:55;
Ответить: Arks
Сообщение
#3
|
|
Смущает, как в переменную $func можно добавить круглые скобки и записать выражение? Например вот так: http://www.html.by/threads/24812-Rekursija...ll=1#post144412 и да, эта сортировка не быстрее сортировки а-ля [PHP]$a = array(5,3,-1,4,2,-300,6,-500,-100) sort($a); [/PHP] Потому что не надо сравнивать производительность интерпретатора и машинного кода, какие бы супер-алгоритмы не использовались. php тоже возможно не дураки писали и учли оптимизации при хардкодинге функций сортировки, нэ? |
|
|
kilogram
|
Сообщение
#4
|
|
Попробовал написать такой код, который вычисляет квдадрат числа.
[php] function santa($n) { return $n*$n; } function balta($n) { return $n(5); } echo balta("santa"); echo '<br />'; [/php] Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало. Это что, получается я передал всю функцию санта в функции балта? В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента? |
|
|
Arks |
28.4.2012, 22:50;
Ответить: Arks
Сообщение
#5
|
|
В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента? передается строка, все верно. А php-интерпретатор разыменовывает ссылку на функцию в эту строку при обращении через __invoke(со скобочками вызова) (в примере все равно разименовывает при вызове проверки is_callable) [PHP] function santa($n) { } function balta($n) //$n = string 'santa', $n = string 'santa2' { return is_callable($n); //$n = & *santa() == true, $n = & *santa2() == false, т.к. у нас нету в программе ссылки на область(указатель - адрес памяти) содержащую функцию santa2 } balta("santa");//true balta("santa2");//false [/PHP] надеюсь наглядно показал? |
|
|
kilogram
|
Сообщение
#6
|
|
Я так понял интерпретатор языка ПХП когда видит название переменной, а за ней скобки, подставляет значение этой переменной в название этой переменной со скобками,если значение этой переменной совпало с названием такой функции описаной где-то в коде.
|
|
|
Arks |
29.4.2012, 1:36;
Ответить: Arks
Сообщение
#7
|
|
|
kilogram, не где-то в коде, а в контексте вызова. Пример:
[PHP] class A { function a() { } function b($n) { return is_callable ( $n ); } } $a = new A(); $a->b('a'); //false т.е. фактически например был бы класс B с методом a(), разумеется т.к. & *A->a() != & *B->a() контекст вызова у них был бы разный(все внутренние переменные и т.п.) [/PHP] Интерпретатор ничего не пытается вызвать, он смотрит на тип данных адресованных указателем и определяет по нему являются ли эти данные функцией. К переменным это вообще прямого отношения не имеет, пример abc();//Fatal - call to undefined function - где тут переменные? В данном случае в контексте вызова(тут это вся программа) - нету объекта, реализующего интерфейс callable который адресует указатель, ссылка на который имела бы имя "abc". Короче почитайте проще основы языка С. Php вам пока нафиг не сдался если Вы не понимаете что такое ссылки и контекст вызова функции.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Быстрая индексация страниц сайта и обратных ссылок - 2Index | 38 | 2Index | 6640 | 18.4.2024, 12:56 автор: 2Index |
|
In-to.cc - Простота использования, быстрая скорость обмена, индивидуальный подход к каждому пользователю, самые популярные направления обмена. | 2 | in_to | 2305 | 13.3.2023, 14:15 автор: in_to |
|
pocket-exchange.com - обмен электронных валют. Низкие курсы! Быстрая обработка заявок! | 8 | pocket_exchange | 9358 | 12.8.2022, 15:30 автор: pocket_exchange |
|
Вечные ссылки на более 90 новостных порталах! Хороший Тиц и быстрая индексация! | 98 | Oksana10 | 52681 | 8.4.2021, 16:19 автор: Oksana10 |
|
быстрая и бесплатная накрутка лайков Instagram01.ru | 19 | instagram01 | 5350 | 4.12.2019, 18:28 автор: -instagram01- |
Текстовая версия | Сейчас: 20.4.2024, 0:04 |