За последние 24 часа нас посетили 16533 программиста и 1499 роботов. Сейчас ищут 957 программистов ...

всё плохо

Тема в разделе "PHP для новичков", создана пользователем schmidt, 14 фев 2017.

  1. schmidt

    schmidt Активный пользователь

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
    1.php:

    PHP:
    1. <?php
    2. $count = 3;
    3. $z[0] = 'enot';
    4. $z[1] = 'krot';
    5. $z[2] = 'kot';
    6.  
    7. function test()
    8. {
    9.   echo $count;
    10.   echo "<br>";
    11.   echo $z[2];
    12.   echo "<br>";
    13.   echo $z[0];
    14.   echo "<br>";
    15. }
    16. ?>
    2. php

    PHP:
    1. <?php
    2. include '1.php';
    3. test()
    4. ?>
    Переходим на 2.php и переменная $count вообще не видна
    И $z выдает вообще неверную информацию.
    Что за бред с этим php?
     
    #1 schmidt, 14 фев 2017
    Последнее редактирование модератором: 14 фев 2017
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Переменные $count и $z - глобальные, для доступа к глобальным переменным внутри функции существует инструкция global. Читайте мат. часть, прежде чем писать. И работайте с включёнными ошибками - код должен был нотисы плюнуть
    --- Добавлено ---
    Вот такие:
    upload_2017-2-14_14-31-12.png
     
    schmidt нравится это.
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Просто ты не программист. Чего на зеркало пенять коли рожа кривая?
     
  4. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    четкое название темы...
    вот посмотри видео по данной теме
     
  5. schmidt

    schmidt Активный пользователь

    С нами с:
    9 сен 2012
    Сообщения:
    13
    Симпатии:
    1
    Я программист на другом языке, мне главное основы тут уловить и синтаксис, с логикой в порядке.
    Спасибо большое, получилось.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @schmidt это хорошо что программист на другом языке. Тогда тебе наверное известно, что можно открыть мануал и ознакомиться с основами языка перед тем как начинать на нем писать код. Очень помогает. Сам так делаю иногда.
     
    mkramer нравится это.
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    В других языках не существует областей видимости?
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @romach от языка зависит
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    @Ganzal, например? (мну правда интересно на каком стеке нужно специализироваться, что мысль об областях видимости даже не пришла в голову)
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @romach языки разные и подход к переменным у каждого может быть свой.
    Например, напиши мне на ждаваскрипте циклом с таймаутом в 100 вывод чисел от 1 до 5 в консоль.
     
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    ненавижу джаваскрипт ) в цикле, да ещё и с таймаутом, ну например вот так:
    Код (Javascript):
    1. for(let i = 1; i <=5; i++) {
    2.   setTimeout(function(i) {
    3.     console.log(i);
    4.   }.bind(this, i), i * 100);
    5. }
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Ну видишь. Сразу и let и bind. А зачем, если по логике ты создаешь функцию, в которой по идее своя собственная область видимости? Да еще и таймаут её должен вырвать из текущего контекста. Вот тебе и пример того насколько разные могут быть подходы к переменным в языках.
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Подходы разные, не спорю:

    Код (Javascript):
    1. // 6,6,6,6,6
    2. let x;
    3. for(x = 1; x <=5;x++) {
    4.     setTimeout(function() {
    5.     console.log(x);
    6.   }.bind(this), x * 100);
    7. }
    8.  
    9. // 1, 2, 3, 4, 5
    10. for(let y = 1; y <=5; y++) {
    11.     setTimeout(function() {
    12.     console.log(y);
    13.   }.bind(this), 500 + y * 100);
    14. }
    15.  
    16. // 6,6,6,6,6
    17. for(var z = 1; z <=5;z++) {
    18.     setTimeout(function() {
    19.     console.log(z);
    20.   }.bind(this), 1000 + z * 100);
    21. }
    22.  
    23. // 1, 2, 3, 4, 5
    24. for(var a = 1; a <= 5; a++) {
    25.     setTimeout(function(a) {
    26.     console.log(a);
    27.   }.bind(this, a), 1500 + a * 100);
    28. }
    Но области видимости то есть. Когда ты в новом для себя языке объявляешь переменную, которую из другого места не видно, что первое придет тебе в голову? Вот мну и стало интересно, что за язык такой.
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @romach, человека смутило, что php особенный, и в нём надо не локальные переменные объявлять, как в большинстве языков, а указывать в функции используемые глобальные.

    В принципе, переменные в PHP - первое, что смущает при переходе с других языков. Сам до PHP писал на Pascal и C++ (правда, не профессионально), и первое время привыкал, что у меня теперь переменные без типов.
     
  15. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    славабогу мне такое не разу не написали, я бы этого не пережил :confused: