powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
25 сообщений из 271, страница 4 из 11
(PHP) Разминка для мозгов
    #36607732
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверно потому что for медленная конструкция.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36607748
WadimX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

Скорее всего, потому что во втором случае алгоритм:
1. Умножение на счётчик
2. Увеличение счётчика
...
А в первом:
1. Умножение на счётчик
2. Прыжок
3. Увеличение счётчика
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36607752
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего потому что:
авторEach of the expressions can be empty or contain multiple expressions separated by commas.
и
авторIn the beginning of each iteration, expr2 is evaluated
на мое имхо оно не переводится в байт код а исполняется через внутренний аналог eval()
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36607944
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
классическая задача Quine .
Quine(Куайн) — компьютерная программа которая выдаёт на выходе точную копию своего исходного текста. при этом нельзя использовать никакие внешние данные. тоесть нельзя использовать функции чтения файла, например... при этом самый гламур - чтобы программа получилась как можно меньше.

по ссылке выше, есть примеры на разных языках. и для php в том числе. говорят вариантов квайна очень много. если есть желание и идеи, можете попробовать написать свои варианты. у меня получился не самый лучший вариант. но потом я в сети нашел идею, которая в два раза укоротила код )
в общем - чуть позже опубликую что у меня получилось, если ктото не опередит ) с таким же решением. удачи.

PS решения типа <?php readfile(__FILE__); это не квайн
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620340
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

раз Квайн вам не очень интересен, то другая задачка:

Код: plaintext
1.
2.
3.
4.
5.
// есть  2  переменные $a и $b (не объекты!)
var_dump($a==FALSE); // выводит bool(true)
var_dump($b==TRUE);  // выведет bool(true)
var_dump($a==$b);    // выведет bool(true)
// Это возможно? если да, то что хранится в переменных? )
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620382
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

null
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620384
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, ИМХО, поведение неправильно. Должно быть везде FALSE.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620411
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymr u,

null
нет
null не равно TRUE
одно из условия не выполнится
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620421
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymКстати, ИМХО, поведение неправильно. Должно быть везде FALSE.
моя имха - NULL...
такая логика реализована в РСУБД и в этом есть смысл
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36620437
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

хм, действительно, неправильно переписал. :)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621365
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийan0nymКстати, ИМХО, поведение неправильно. Должно быть везде FALSE.
моя имха - NULL...
такая логика реализована в РСУБД и в этом есть смыслващет согласно стандарту

NULL = NULL -- ложь
NULL IS NOT DISTINCT FROM NULL -- истина
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621394
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений
моя имха - NULL...

NULL это неправильный ответ. как уже написали.
или вы о другом?
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621488
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
$a =  0 ;
$b = 'Some text';
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621529
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpTeach,

правильно. а объяснить механизм можете?
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621604
phpTeach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uphpTeach,

правильно. а объяснить механизм можете? Происходит неявное приведение типов при сравнении, что то вроде:

var_dump((bool)$a==FALSE);
var_dump((bool)$b==TRUE);
var_dump((int)$a==(int)$b);
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36621649
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpTeach,

точно)
причем это описано в доках
If you compare an integer with a string, the string is converted to a number.
за такие вот "особенности" поведения - очень часто и ругают php
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36640658
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

пока нет интересных задач, очередная неоднозначная "особенность" PHP )

в документации сказано что Имя переменной НЕ может начинаться с цифры. и действительно:
$1 = 2; вызовет ошибку интерпретатора.

однако PHP позволяет сделать так:
$a = 1;
$$a = 2;
echo "{$1}"; // переменная с именем 1, и нет ошибок
echo "${1}"; // а так уже заругается )
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36647074
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

возвращаясь к квайну (программа которая выводит свой код)
один из вариантов
Код: plaintext
1.
<?php printf($a='<?php printf($a=%c%s%c,39,$a,39);', 39 ,$a, 39 );
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36849575
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даешь еще задачки =)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36850209
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PM,

В последнее время ничего интересно не попадалось)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37029042
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

очередная разминка) навеяно вчерашним холиваром на тему ООП в php )

Дано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class passwords {
	private $p = 'system_password';
	public function showP(){
		echo $this->p;
	}
}
$p = new passwords;
$p->showP(); // напечатает system_password
/*
 Напишите тут код, который заставит следующий вызов $p->showP(); печатать слово 'HACK'
*/
$p->showP();
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37029098
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант по-проще

Код: plaintext
1.
2.
3.
4.
5.
6.
 classkit_method_redefine (
    'passwords',
    'showP',
    '',
    'echo "HACK";',
    CLASSKIT_ACC_PUBLIC
);

как вариант по-сложнее через Reflection API
Код: plaintext
1.
2.
3.
4.
$ro =  new  ReflectionObject($p); 
$rp = $ro->getProperty('p'); 
$rp->setAccessible( true ); 
$rp->setValue('HACK');
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37029100
Хоббит маг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u, против лома нет приёма

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 class  passwords_hacked
{
  public   function  showP()
 {
    echo  'HACK';
 }
}
$p =  new  passwords_hacked;
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37029104
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PM,

$rp->setValue($p, 'HACK');
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37029142
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PM,
1) classkit и другие сторонние модули расматривать не будем. так можно и свой написать тогда)
2) setAccessible появилось только в php 5.3, к томуже нужно изменить только значение, поле должно оставаться private.

Хоббит маг
Класс должен остаться темже.
тоесть например var_dump($p); до и после - должен отличаться только значением поля $this->p.
...
Рейтинг: 0 / 0
25 сообщений из 271, страница 4 из 11
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]