php Ichki o'rnatilgan standart qiymatga qanday ruxsat berish kerak

    level1();

    function level1($value = null){
       level2($value);
    }

    function level2($value = 100){}

Level1ning $ qiymatini ixtiyoriy ravishda qanday aniqlash mumkin va hali ham level2 funktsiyasi qo'llanilganmi?

Yuqoridagi kod standart qiymatdan foydalanmaydi, chunki $ qiymati allaqachon level1 tomonidan null ga o'rnatiladi.

1
ParameterObject ning aslida foydali bo'lishi mumkin bo'lgan vaziyat bo'lishi mumkin.
qo'shib qo'ydi muallif Alex Blex, manba
balki eng oqlangan - ($ value === null) = level2 (): level2 ($ value);
qo'shib qo'ydi muallif ewcz, manba

6 javoblar

If you want the default value to be applied, you have to skip the argument completely. The easiest solution would be just to check, if $value === null

function level1($value = null){
    if ($value === null) {
       level2();
    } else {
       level2($value);
    }
}

Agar siz tekshirishni xohlasangiz, 1-darajali standart qiymat qo'llanilsa, func_num_args() dan foydalanishingiz mumkin.

 function level1($value = null){
    if (func_num_args() == 0) {
       level2();
    } else {
       level2($value);
    }
}
1
qo'shib qo'ydi

If you want the default value to be applied, you have to skip the argument completely. The easiest solution would be just to check, if $value === null

function level1($value = null){
    if ($value === null) {
       level2();
    } else {
       level2($value);
    }
}

Agar siz tekshirishni xohlasangiz, 1-darajali standart qiymat qo'llanilsa, func_num_args() dan foydalanishingiz mumkin.

 function level1($value = null){
    if (func_num_args() == 0) {
       level2();
    } else {
       level2($value);
    }
}
1
qo'shib qo'ydi

Mana buni qilishning bir yo'li, cheksiz argumentlarni qo'llab-quvvatlaydi:

function level1(){
    $args = func_get_args();
    call_user_func_array('level2', $args);
}
1
qo'shib qo'ydi

Mana buni qilishning bir yo'li, cheksiz argumentlarni qo'llab-quvvatlaydi:

function level1(){
    $args = func_get_args();
    call_user_func_array('level2', $args);
}
1
qo'shib qo'ydi

Ehtimol, bir oz iflos, lekin ishlashi kerak:

<?php

    function level1($value = null){
        ($value === null)?level2():level2($value);
    }

    function level2($value = 100){echo $value;}

    level1();
    level1(7);


?>

bu 100 ni bosib chiqaradi va undan keyin 7 bo'ladi.

0
qo'shib qo'ydi

Siz doimo qila olasiz

funktsiya darajasi2 ($ value) {     agar ($ value === null)        $ value = 100; }

Siz qidirayotgan narsalar bilan bir xil emas, lekin u xuddi shunday ta'sirga ega.

0
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin