روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ Mahdi
magic method call
جامعه پی اچ پی ایجاد شده در ۰۹ شهریور ۱۴۰۱

سلام مجدد استاد

استاد اشکال کدهام کدوم قسمته

که حاصل ضرب و جمع متود هام اشتباه برگردونده میشود؟

class Math
{
    public function sum($numbers)
    {
        $sum = 0;
        foreach ($numbers as $sum) {
            $sum += (int)$sum;
        }
        return $sum;
    }
    public static function mul($numbers)
    {
        $mul = 1;
        foreach ($numbers as $sum) {
            $sum *= (int)$sum;
        }
        return $mul;
    }
}
class Call
{
    public function __call($name, $arguments)
    {
        $Math = new Math;
        return $Math->{$name}($arguments) . PHP_EOL;
    }
    public static function __callStatic($name, $arguments)
    {
        return Math::{$name}($arguments) . PHP_EOL; 
    }
}
$C = new Call;
echo $C->sum(2, 6);
echo Math::mul([2, 6]);

جواب sum بجای 7 میشه 12

جواب mul بجای 12 میشه 1

در متغیر گذاری داخل foreach هات مشکل داشتی

class Math
{
    public function sum($numbers)
    {
        $sum = 0;
        foreach ($numbers as $number) {
            $sum += (int)$number;
        }
        return $sum;
    }
    public static function mul($numbers)
    {
        $mul = 1;
        foreach ($numbers as $number) {
            $mul *= (int)$number;
        }
        return $mul;
    }
}
class Call
{
    public function __call($name, $arguments)
    {
        $Math = new Math;
        return $Math->{$name}($arguments) . PHP_EOL;
    }
    public static function __callStatic($name, $arguments)
    {
        return Math::{$name}($arguments) . PHP_EOL;
    }
}
$C = new Call;
echo $C->sum(2, 6);
echo Math::mul([2, 6]);
بهترین پاسخ
محمد گازری ۰۹ شهریور ۱۴۰۱، ۱۴:۱۳

استاد در مثال‌های قبل‌تر به عنوان نمونه مثل پروژه 7todo

در فایل template پروژه جایی که از foreach برای گرفتن row‌های جدول استفاده میکردیم متغیر key به دلخواه انتخاب میکردیم و مبه مشکلی بر نمیخوردیم


یعنی همه جا باید این دو متغیر

$numbers as $number

از یک نوع باشند؟

Mahdi ۰۹ شهریور ۱۴۰۱، ۱۴:۲۲

استاد متغیرها رو درست کردم ولی بازم

جواب‌ها غلطن

این سری

12

36

بم دادن

Mahdi ۰۹ شهریور ۱۴۰۱، ۱۴:۳۵

استاد ی کلاس دیگه تعریف کردم

این یکی جواب ضرب و جمعش یکیه??


class Math
{
    public function sum($numbers)
    {
        // var_dump($numbers);
        $number = 0;
        foreach ($numbers as $number) {
            $number += (int)$number;
        }
        return $number;
    }
    public static function mul($numbers)
    {
        // var_dump($numbers);
        $number = 1;
        foreach ($numbers as $number) {
            $number *= (int)$number;
        }
        return $number;
    }
}
class callStatic
{
    public function __call($name, $arguments)
    {
        $Math = new Math;
        return $Math->{$name}($arguments).PHP_EOL;
    }
    public static function __callStatic($name, $arguments)
    {
        return Math::{$name}($arguments).PHP_EOL;
    }
}
$call = new callStatic;
echo $call->sum(5,2);
echo Math::mul([5,2]);


مبحث اسون ولی چرا اینجور میشه کلافم کرده

Mahdi ۰۹ شهریور ۱۴۰۱، ۱۴:۴۲

کدهای درست رو بالا براتون قرار دادم دیگه

محمد گازری ۰۹ شهریور ۱۴۰۱، ۱۴:۴۷

????

ببخشید استاد

کدا‌های صحیحی ک گذاشتید رو درست چک نکرده بودم

Mahdi ۰۹ شهریور ۱۴۰۱، ۱۴:۵۳