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
Форумы портала PHP.SU :: Версия для печати :: Курьез - почему в ретурне функции есть строка а в функции которая вызывает нет
Форумы портала PHP.SU » » Вопросы новичков » Курьез - почему в ретурне функции есть строка а в функции которая вызывает нет

Страниц (1): [1]
 

1. imedia - 26 Августа, 2017 - 19:13:27 - перейти к сообщению
Обращаемся так createMongoInfo($user);
PHP:
скопировать код в буфер обмена
  1.  
  2. protected function generateDomain($domain,$length = 1){
  3.         //Смотрим в базу нет ли там такогоже домена
  4.         $site = Site::where('domain_name',$domain)->get();
  5.         if(isset($site[0])){
  6.             $chars = 'abdefhiknrstyz';
  7.             $numChars = strlen($chars);
  8.             $string = '';
  9.             for ($i = 0; $i < $length; $i++) {
  10.                 $string .= substr($chars, rand(1, $numChars) - 1, 1);
  11.             }
  12.             $domain=$domain.'_'.$string;
  13.  
  14.             $this->generateDomain($domain,$length+1);
  15.  
  16.         }
  17.         else{
  18.         //No such site
  19.         dump('return',$domain);//Здесь после одного прохода imediasun_z
  20.         return $domain;
  21.         }
  22.    }
  23.     protected function createMongoInfo($user){
  24.  
  25.        $domain_name=stristr($user->email, '@', true);
  26.        dd($this->generateDomain($domain_name,1));//Null
  27.        
  28.  
  29.     }
  30.  

Почему в dd createMongoInfo NULL когда в ретурне generateDomain imediasun_z smile
2. MouseZver - 26 Августа, 2017 - 19:57:06 - перейти к сообщению
делай отладку, смотри что делает метод generateDomain
3. imedia - 26 Августа, 2017 - 20:24:10 - перейти к сообщению
Я написал, возвращает имя домена
4. MouseZver - 27 Августа, 2017 - 08:10:42 - перейти к сообщению
а функция dd() ?
5. rgl - 28 Августа, 2017 - 14:16:56 - перейти к сообщению
Как видно, в функции есть return не всегда, а в зависимости от if. Могу предположить, что return не нужен, если все ОК, а нужет был только для отладки.
6. OrmaJever - 28 Августа, 2017 - 16:04:58 - перейти к сообщению

очевидно же что если условие выполняется то в нём ретурна нету. Об этом написал rgl
7. andrewkard - 28 Августа, 2017 - 21:28:41 - перейти к сообщению
Сдается мне что в функции dd просто нет return,
Цитата:

Замечание:
Если конструкция return не указана, то функция вернет значение NULL.

 

Powered by ExBB FM 1.0 RC1