Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для rodigy
90 / 40 / 17
Регистрация: 24.10.2015
Сообщений: 577

Default function parameter

08.12.2017, 00:38. Показов 656. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Где то я читал , что в php 5.6 собирались сделать передачу параметром по умолчания, в коде нагляднее
PHP
1
2
3
4
5
function fn($name, $other = array(), $gender = 0) {
    echo $name, $gender, implode(',', $other);
}
 
fn('Jon', default, 1);
Я так и не понял , они сделали это или нет, а то чет ошибку кидает, и в доках вроде нет ничего по этому поводу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2017, 00:38
Ответы с готовыми решениями:

Ошибка Warning: fread() [function.fread]: Length parameter must be greater than 0
Есть строка кода if(!preg_match('/'.$user."/",fread($fusers,filesize("user/users.txt"))) && fread($fusers, 1) == 1){ Почему-то он...

Warning: trim() expects parameter 1 to be string, array given in J:\home\wagure\www\libraries\joomla\html\parameter.php on line 83
// Set base path $this->_elementPath = dirname( __FILE__ ).DS.'parameter'.DS.'element'; if (trim( $data )) { ...

Ошибка missing default parameter for parameter
вот программка #include <iostream> #include <conio.h> using namespace std; int n,i,d; float *m=new float;//динамическое...

9
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
08.12.2017, 04:03
Цитата Сообщение от rodigy Посмотреть сообщение
ошибку кидает
Что за ошибка?

"default" - это константа?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.12.2017, 06:05
Данная функциональность была отклонена https://wiki.php.net/rfc/skipparams
0
 Аватар для rodigy
90 / 40 / 17
Регистрация: 24.10.2015
Сообщений: 577
08.12.2017, 15:48  [ТС]
Жаль, хорошая вещь была бы
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
08.12.2017, 18:02
Цитата Сообщение от rodigy Посмотреть сообщение
Жаль, хорошая вещь была бы
Нет. Лучше бы ввели именованные параметры, чтобы можно было так:

PHP
1
 fn('name': 'Jon', 'gender': 1) ;
Но самый лучший вариант - писать код без создания подобных ситуаций.

PHP
1
2
3
4
5
6
7
function fn($name, $gender) {
    echo $name, $gender;
}
function fnWithOther($name, $gender, array $other) {
     fn($name, $gender);
    echo implode(',', $other);
}
1
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
08.12.2017, 18:41
Цитата Сообщение от PavelPol Посмотреть сообщение
Лучше бы ввели именованные параметры, чтобы можно было так: fn('name': 'Jon', 'gender': 1) ;
PHP
1
2
fn(['name'=>'Jon', 'gender'=>1]){
}
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.12.2017, 19:36
otto-fukin, массив передавать так себе идея. Теряется тайпхинт и нужно следить за количеством и именем передаваемых параметров, иде не будет подсвечивать ошибки. Тут лучше data объекты подойдут, но сущности плодить ради 1 функции тоже не хочется
0
 Аватар для rodigy
90 / 40 / 17
Регистрация: 24.10.2015
Сообщений: 577
08.12.2017, 22:08  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Тут лучше data объекты подойдут
можно про это чуть подробнее

Добавлено через 1 минуту
До этого времени так и пользуюсь масивами(редко, но иногда приходиться), забивая на то что IDE не подхватит( да тут и валидировать нечего, передавай сколько угодно параметров, только с именем можно ошибиться)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.12.2017, 22:14
Цитата Сообщение от rodigy Посмотреть сообщение
можно про это чуть подробнее
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Data
{
    private $a;
    private $b;
    // ...
 
    public function getA()
    {
        return $this->a;
    }
 
    public function setA($a)
    {
        $this->a = $a;
        return $this;
    }
    // ...
}
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
09.12.2017, 10:58
С именованными параметрами подойдёт только конструкция языка, массивы и объекты - уже не то. В первом случае как было сказано, нет тайп-хинта, нет подсказок ide, на параметры по умолчанию надо делать проверки. Во втором случае (объект) нужно писать класс для всех подобных функций, а при вызове инициализировать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2017, 10:58
Помогаю со студенческими работами здесь

ADO: Parameter has no default value
Приветствую! Есть база данных Access, в ней таблица с тремя полями типа целый: sNumPins, sGround, sPower. sNumPins обязательное,...

Invalid parameter passed to C runtime function
Здравствуйте программа работает нормально в линуксе а вот в винде краш вот код mainwindow.h #ifndef MAINWINDOW_H #define...

Ошибка Parameter names are used only with a function body
Пытаюсь создать объект класса. Конструктор выглядит следующим образом: NeuronNet::NeuronNet(const vector<unsigned int>...

Default argument given for parameter 2 of 'MyWidget::MyWidget(const QString pass, QWidget *parent = 0)'
Не могу понять, почему выдает эту странную ошибку: C:\Users\Misha\Documents\Laba\mywidget.cpp:35: ошибка: default argument given for...

Ошибка при сборке: Invalid parameter passed to C runtime function
#include <stdio.h> #include <iostream> #include <fstream> typedef unsigned long int uint; typedef struct...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru