Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ответы на вопросы из уроков по php [5]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (5): « 1 2 3 4 [5] 

> Без описания
Saluman
Отправлено: 10 Июля, 2016 - 22:19:31
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Здравствуйте.
Вопрос по заданию из урока 1.
Я интуитивно понимаю разницу, но хотелось бы точно понять, почему вариант 1 не дает результат, а вариант 2 - дает.

$a='Вася'; $b = 'Петя'; Поменяйте местами значения переменных .

PHP:
скопировать код в буфер обмена
  1. Вариант 1.
  2. <?PHP
  3. $a= 'Вася';
  4. $b = 'Петя';
  5. $ab = array($a, $b);
  6. $ab[0] = 'Петя';
  7. $ab[1] = 'Вася';
  8. echo $a; echo $b; //не меняет местами
  9. ?>
  10.  
  11. Вариант 2
  12. <?PHP
  13. $c='Вася';
  14. $d = 'Петя';
  15. $cd = array($c, $d);
  16. $cd[0] = 'Петя';
  17. $cd[1] = 'Вася';
  18. echo $cd [0]; echo $cd [1]; //меняет местами
  19. ?>
  20.  
 
 Top
ytrewq123
Отправлено: 11 Июля, 2016 - 12:07:24
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Извините оба варианта. Идентичны. Кроме строки где вы используете. Echo!
Просто в первом вы выводите переменные. А во втором значения массива.
Если вы в первом выведите вместо переменных $a и $b, $ab[0] и $ab[1].
То увидите перемены. А во втором выведите в место $cd [0], $cd [1]
$c и $d. То перемен не будет.

(Отредактировано автором: 11 Июля, 2016 - 12:08:27)

 
 Top
Saluman
Отправлено: 11 Июля, 2016 - 21:19:01
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Спасибо. Я изучаю язык несколько дней. То есть сами переменные и они же как элементы массива - разные вещи?
 
 Top
ytrewq123
Отправлено: 12 Июля, 2016 - 14:12:17
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Да нет.
Я тоже пока учусь, так что если что не так надеюсь кто по умнее поправят.
Если переменная $a= 'Вася'; Она будет Вася. Пока вы не поменяете ей значение. А положив её в массив. Она просто передаёт, значение. Которое вы можете менять, но $a= 'Вася'; всё равно останется. Ибо вы меняете значение элемента массива, а не значение переменной. Кстати что вы как раз и сделали в обоих вариантах. Этим действием. $ab[0] = 'Петя';
...............................
То есть получается.
$a= 'Вася';
$a= 'Вася'; в массив и $ab[0] = ' Вася ';
тут вы меняете значение первого элемента массива $ab[0] = 'Петя'; и теперь $ab[0] = 'Петя';
А $a= 'Вася'; как было так и осталось.
Как то так.
 
 Top
Vika
Отправлено: 21 Августа, 2016 - 02:17:45
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2016  


Помог: 0 раз(а)




Где можно задать вопрос по переменным?
 
 Top
andrewkard
Отправлено: 22 Августа, 2016 - 11:30:39
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Vika
На форуме Улыбка
 
 Top
Mariya
Отправлено: 28 Августа, 2016 - 02:31:31
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Авг. 2016  


Помог: 0 раз(а)




Здравствуйте! Я разобралась с созданием файлов и записи в них информации. Можно ли нажатием кнопки задать файлу свойство - только для чтения или скрытый файл? Или можно создавать сразу такие файлы? Подскажите пожалуйста, как написать код для создания новой папки, которая будет находиться на диске С?
 
 Top
luckyday
Отправлено: 28 Ноября, 2018 - 17:31:59
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2018  


Помог: 0 раз(а)




EuGen пишет:
Урок № 5. Математические функции


0. Вернет true, если принять, что такие числа допустимы. Если читатель знает предмет вопроса (или не поленился заглянуть в википедию), то он знает, что трансцедентные числа - обычные вещественные числа. Но являются они корнями многочлена с иррациональными коэффициентами. Единственное что - их представление в типе float языка php сделает их уже не трансцентными вовсе. Так что - с точки зрения float функция is_nan вернет true. Если же считать, что трансцедентные числа нельзя записать представлением float, то и вообще ничего не вернет (агрумента то и не будет)
1.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class Converter
  4. {
  5.         protected $cipherSet;
  6.         protected $rgCiphers;
  7.    
  8.         protected $inputSet;
  9.         protected $outputSet;
  10.         protected $fromBase;
  11.         protected $toBase;
  12.  
  13.        
  14.         protected $iErrorCode;
  15.         protected $sErrorMessage;
  16.        
  17.         /*Submit only full cipher set*/
  18.         function __construct($strSet)
  19.         {
  20.                 $this->cipherSet=$strSet;
  21.                 $this->iErrorCode=0;
  22.                 $this->sErrorMessage="";
  23.         }
  24.         /*multiplication with non-decimal base*/
  25.         protected function baseArithmeticMult($num)
  26.         {
  27.                 $currentResultLen=count($this->rgCiphers);
  28.                 if ($currentResultLen==0)
  29.                 {
  30.                         return;
  31.                 }
  32.                 $rgMods=array();
  33.                 $currentPos=0;
  34.                 $div=0;
  35.                 do
  36.                 {
  37.                         $divided=0;
  38.                         if ($currentResultLen>$currentPos)
  39.                         {
  40.                                 $divided=$this->rgCiphers[$currentPos]*$num;
  41.                         }
  42.                         $divided+=$div;
  43.                         $rgMods[$currentPos]=$divided%$this->toBase;
  44.                         $div=(int)($divided/$this->toBase);
  45.                         $currentPos++;
  46.                 }
  47.                 while($currentResultLen>$currentPos||$div!=0);
  48.                 $this->rgCiphers=$rgMods;
  49.         }
  50.         /*addition with non-decimal base*/
  51.         protected function baseArithmeticPlus($num)
  52.         {
  53.                 $currentPos=0;
  54.                 $divided=$num;
  55.                 do
  56.                 {
  57.                         $divided+=(int)($this->rgCiphers[$currentPos]);
  58.                         $this->rgCiphers[$currentPos]=$divided%$this->toBase;
  59.                         $divided=(int)($divided/$this->toBase);
  60.                         $currentPos++;
  61.                 }
  62.                 while ($buf>0);
  63.         }
  64.         /*error's getters*/
  65.         public function getErrorCode()
  66.         {
  67.                 return $this->iErrorCode;
  68.         }
  69.        
  70.         public function getErrorMessage()
  71.         {
  72.                 return $this->sErrorMessage;
  73.         }
  74.         /*main function*/
  75.         public function baseConvert($num, $fromBase=0, $toBase=0)
  76.         {
  77.                 $num=(string)($num);
  78.                 $totalCiphers=strlen($num);
  79.                 $this->inputSet=substr($this->cipherSet, 0, $fromBase);
  80.                 $this->outputSet=substr($this->cipherSet, 0, $toBase);
  81.                 $this->toBase=$toBase;
  82.                 $this->rgCiphers=array();
  83.                 for ($currentPos=0; $currentPos<$totalCiphers; $currentPos++)
  84.                 {
  85.                         $currentCipher=$num[$currentPos];
  86.                         $cipherSign=substr_count($this->inputSet, $currentCipher);
  87.                         if($cipherSign==0)
  88.                         {
  89.                                 $this->iErrorCode=255;
  90.                                 $this->sErrorMessage="Cipher '".$currentCipher."' was not found in cipher set: ".$this->inputSet;
  91.                                 return null;
  92.                         }
  93.                         elseif($cipherSign>1)
  94.                         {
  95.                                 $this->iErrorCode=255;
  96.                                 $this->sErrorMessage="Cipher '".$currentCipher."' was found more than once in cipher set: ".$this->inputSet;
  97.                                 return null;
  98.                         }
  99.                         if ($currentPos!=0)
  100.                         {
  101.                                 $this->baseArithmeticMult($fromBase);
  102.                         }
  103.                         $this->baseArithmeticPlus(strpos($this->inputSet, $currentCipher));
  104.                 }
  105.                 $convertedNum='';
  106.                 $totalCiphers=count($this->rgCiphers);
  107.                 for ($currentPos=0; $currentPos<$totalCiphers; $currentPos++)
  108.                 {
  109.                         $convertedNum=$this->outputSet[$this->rgCiphers[$currentPos]].$convertedNum;
  110.                 }
  111.                 return $convertedNum;
  112.         }
  113. }
  114. ?>
  115.  

2. Некоторые примеры:
is_nan(sqrt(-1)) и is_finite(sqrt(-1))
is_nan(acos(2)) и is_finite(acos(2))



Здравствуйте, спасибо за отличный сайт и кучи материала!
Я дошел до д/з 5 урока 2го задания сделал его кое как, но работает. Потом посмотрел решение - лучше бы я этого не делал. Я правильно понимаю что на 5м уроке я должен уметь писать подобного рода функцию, как в решении? Непонятно ничерта))


CODE (htmlphp):
скопировать код в буфер обмена
  1. $a=61;
  2. function convert($a) {
  3. if ($a<36){
  4. $b = base_convert ($a, 10, 36);
  5.         echo $b;
  6. }
  7. elseif ($a<62) {
  8. $a=$a-26;
  9.         $b = base_convert ($a, 10, 36);
  10.         echo strtoupper($b);
  11. }
  12. else {
  13. echo "введите число в диапазоне от 0 до 61";
  14. }      
  15. }
  16. echo convert($a);
  17.  
 
 Top
Страниц (5): « 1 2 3 4 [5]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Уроки php »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB