Jump to content

kilogram

User
  • Posts

    120
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by kilogram

  1. Если она определена дальше, почему тогда выдает ошибку что переменная не определена при её выводе?

  2. а что тебя смущает? все нормально.

    Попробовал написать вот самое простое.


    for($i=0; $i < 5; $i++){
    $d+=$i;
    }
    echo $d;

    Получается $d не снаружи и ошибка Notice: Undefined variable: d in

    Как эта функция тогда выводит переменную line за пределами фора?

  3. Объясните вот это действие:

    if(mt_rand(0,$i) == 0) $line = $s;

    Непонятно, зачем присваивать переменную s? Что это дает?

    Ещё, как можно выводить $line если он объявлен внутри цикла фора, а не за её пределами?

  4. Читаю тему случайные числа в книге, там такой пример, не работает чего-то.


    <?php

    $ourfile = fopen("largetextfile.txt",'r');
    for($i = 0; $s = fgets($ourfile,10000); $i++){
    if(mt_rand(0,$i) == 0) $line = $s;
    }
    echo $line;
    ?>

  5. Вроде разобрался.

    <?php
    $name = 'Obama';
    $post = 'deputy';
    $town = 'Washington';
    $city = 'USA';
    $t = array("name"=>"Дженефер Лопес","post"=>"певица",'town'=>'Kiev','city'=>'Ukraine');

    extract($t, EXTR_OVERWRITE);
    echo $town.' - это столица страны '.$city.'<br />';
    echo $name.' занимает должность - '.$post.'<br /><br />';

    $name = 'Leonardo Da Vinci';
    $post = 'artist';
    $town = 'Italy';
    $city = 'Rome';

    $t = compact("name",'post','town','city');

    echo $t['town'].' - это столица страны '.$t['city'].'<br />';
    echo $t['name'].' занимает должность - '.$t['post'].'<br />';


    ?>


  6. <?php
    $name = "Леонардо Давинчи";
    $age = 15;

    $t = array("company"=>"Inmarket");
    compact("name","age",$t);
    foreach($t as $a=>$
    echo $a.' - '.$b.'<br />';
    ?>

    Почему не добавляет функция компакт ключ со значениями в массив $t?

  7. Ещё небольшое уточнение. Почему если заменить это:


    array_splice($input,1,2,$mas);
    echo '<pre>'.print_r($input,1).'</pre>';

    на это


    $d = array_splice($input,-2,2,$mas);
    echo '<pre>'.print_r($d,1).'</pre>';

    Почему обрезания значений элементов не произойдет, а выведет просто последние 2 элемента массива без изменений?

    Значения последних 2-ух элементов массива $input не меняются почему то

  8. А так чтоб сохранялись ключи при замене существующего массива не получиться?

    $input = array("color1"=>"red","color2"=> "green","color3"=>"blue","color4"=>"yellow");
    array_splice($input,1,count($input),"orange");
    echo '<pre>'.print_r($input,1).'</pre>';

    Результат:


    Array
    (
    [color1] => red
    [0] => orange
    )

    Как сделать чтоб не нумировался ключ с нуля, а подставлялось ассоциативное имя ключа?

  9. array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

    Как читать правильно эту строку в документации PHP? Первый параметр означает, что переменная должна передаваться как массив, а вот второй параметр загадочно как-то, расшифруйте.

  10. Вот так правильнее, проверил секундомером с учетом если 10 млн номер индекса последний, код запускается чере 14,16 сек. в браузере.


    <?php
    $trans = array(
    0 => array("Мама","Папа","Дядя",),
    1 => -3,
    2 => 105,
    3 => 500,
    4 => 'Andrey',
    10000000 => array("Вася","Петя","Коля")
    );

    end($trans);
    $max = key($trans);

    for ($i = 0; $i <= $max; $i++)
    {
    if (!array_key_exists($i, $trans)) continue;
    if (is_array($trans[$i]))
    for ($j = 0; $j < count($trans[$i]); $j++)
    echo $trans[$i][$j] . ' ';
    else
    echo $trans[$i] . ' ';
    }
    ?>

  11. Ух-ты, вот так получилось.

    <?php
    $trans = array(
    0=> array("Мама","Папа","Дядя",),
    1 => -3,
    2 => 105,
    3=>500,
    4=>'Andrey',
    8=> array("Вася","Петя","Коля")
    );


    if(!empty($r))echo 'не существует';

    echo '<br />';

    for ($i = 0; $i < count($trans); $i++)
    {
    if(empty($trans[$i])) continue;
    if (is_array($trans[$i]))
    for ($j = 0; $j < count($trans[$i]); $j++)
    echo $trans[$i][$j] . ' ';
    else
    echo $trans[$i] . ' ';
    }
    ?>

  12. Я быстро спросил, сразу просто не вышло, сейчас подумал, получилось.

    Вот так заработало.

    <?php
    $trans = array(
    0=> array("Мама","Папа","Дядя",),
    1 => -3,
    2 => 105,
    3=>500,
    4=>'Andrey',
    8=> array("Вася","Петя","Коля")
    );

    foreach($trans as $x)
    {
    if (is_array($x))
    foreach ($x as $y)
    echo $y . ' ';
    else
    echo $x . ' ';
    }
    echo 'Я справился!';
    echo '<br />';

    Если через фор попробовать вывести вот так, не захочет, захочет только если поменять индекс 8 на 5, странно как-то. 5=> array("Вася","Петя","Коля")


    for ($i = 0; $i < count($trans); $i++)
    {
    if (is_array($trans[$i]))
    for ($j = 0; $j < count($trans[$i]); $j++)
    echo $trans[$i][$j] . ' ';
    else
    echo $trans[$i] . ' ';
    }

  13. Не получается вывести двумерный массив. Читал вроде в учебнике что циклы могут не обязательно одинаковой длины строки и стобцы быть, вот попробовал написать код, чего-то не срабатывает.


    <?php
    $trans = array(
    0=> array("Мама","Папа","Дядя",),
    1 => -3,
    2 => 105,
    3=>500,
    4=>'Andrey',
    8=> array("Вася","Петя","Коля")
    );


    foreach($trans as $x)
    foreach($x as $y)
    echo $x.' '.$y.' ';

    ?>

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

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


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

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

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

    Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало.

    Это что, получается я передал всю функцию санта в функции балта?

    В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?

  16. <?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;

    Что это означает? С функцией понимаю ,а вот с переменной, как она со скобками и внутри выражение?

  17. То есть если название файла будет называться 0.txt может произойти выход из цикла случайно если не поставить сравнение типов с булевым значением false?

  18. !== - данные не должны быть эквивалентны

    while(false !== ($e=readdir($d)) )

    Если $e не равно типу бул, значению фолс. А зачем здесь проверять на тип?

    Какие элементы с какими проверяются?


  19. <?php
    function sos($f1,$f2){
    if(is_dir($f1) && !is_dir($f2)) return -1;
    if(!is_dir($f1) && is_dir($f2)) return 1;
    if($f1<$f2) return -1; elseif ($f1>$f2) return 1;
    else return 0;
    }
    $d = opendir('.');
    while(false !== ($e=readdir($d)) )
    $files[$e] = filesize($e);
    uksort($files,"sos");
    print_r($files);
    ?>

    НЕ понятно вот это место: while(false !== ($e=readdir($d)) )

    Что это за сравнение? Как расшифровывается строка?

  20. На локальном компьютере возле файла index.php лежит файл 1.txt, он открывается если ввести путь: http://text.ru/1.txt Зарегистрировался на бесплатном хостинге PHP, кинул также туда 1.txt, ввожу такое:

    http://santa.comoj.com/1.txt браузер ХРОМ выдает

    Ошибка. Ссылка не работает.


  21. function p($n){
    $n = 0;
    if($n<6) {echo $n; $n++; } else {return false; }
    }
    p(5);

    Как написать рекурсивную функцию не испульзуя какие-нибудь циклы? Пробую, выводит только первый раз и все.

    • Like 1

  22. <html><body>
    <?php
    $st = "
    <strong>Жирный жираф</strong>
    <tt>Моноширинный текст</tt>
    <a href='http://www.dklab.ru' tatget='_blank'>Ссылка</a>
    a<x && y>d
    ";
    echo "Исходный текст: $st";
    echo "<hr> После удаления тегов:".strip_tags($st,"<tt><a><target>");
    ?>
    </body></html>

    Нужно чтоб ссылка открывалась в новом окне после обработки текста функцией strip_tags которая удаляет ненужные теги из строки. Во втором параметре, в котором необходимо укзаать какие теги не должно удалять,я указал, но при нажатии на ссылку она не открывается в новом окне хоть target указал чтоб открывало в новом окне. Почему?

    • Like 1
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy