پی ایچ پی 7.4 پروگرامنگ زبان کی ریلیز

ترقی کے ایک سال بعد پیش کیا پروگرامنگ زبان کی رہائی پی ایچ پی کی 7.4. نئی برانچ میں نئی ​​خصوصیات کی ایک سیریز کے ساتھ ساتھ مطابقت کو ختم کرنے والی متعدد تبدیلیاں شامل ہیں۔

چابی بہتری پی ایچ پی 7.4 میں:

  • ٹائپ شدہ پراپرٹیز - کلاس کی خصوصیات میں اب قسم کے اعلانات شامل ہوسکتے ہیں، مثال کے طور پر:

    کلاس صارف {
    عوامی int $id؛
    عوامی سٹرنگ $name؛
    }

  • مخفف فنکشنز کی وضاحت کے لیے نحو "fn(parameter_list) => expr" قدر کے لحاظ سے اسکوپ بائنڈنگ کے ساتھ۔ مثال کے طور پر، "fn($x) => $x + $y" "$fn2 = فنکشن ($x) استعمال ($y) {واپسی $x + $y;}") کے مترادف ہے۔
  • شارٹ ہینڈ اسائنمنٹ آپریٹر "??=" جو پہلے سے طے شدہ قدر کی وضاحت کے لیے استعمال کیا جا سکتا ہے ("a ??= b" "a = a ?? b" سے ملتا جلتا ہے، اگر "a" کی وضاحت کی جاتی ہے تو اس کی قدر ذخیرہ ہوتی ہے، اور اگر اس کی وضاحت نہیں کی جاتی ہے قدر "b" تفویض کی جاتی ہے؛
  • محدود موقع ماخوذ واپسی کی اقسام میں اقسام کے وراثت کے درجہ بندی کو محفوظ کرنا، یا اخذ کردہ دلیل کی اقسام میں اصل اقسام کے درجہ بندی کو ریورس کرنے کی صلاحیت (ہم آہنگی واپسی کی قسم اور دلیل کی قسم کا تضاد)۔ مندرجہ ذیل تعمیرات اب پی ایچ پی میں استعمال کی جا سکتی ہیں:

    کلاس A {}
    کلاس B A {} کو بڑھاتا ہے

    کلاس پروڈیوسر {
    عوامی تقریب کا طریقہ(): A {}
    }
    کلاس چائلڈ پروڈیوسر نے پروڈیوسر کو بڑھایا {
    عوامی تقریب کا طریقہ(): B {}
    }

  • "…$var" کے اندر آپریٹر کو پیک کرنا، اجازت دینا نئی صف کی وضاحت کرتے وقت موجودہ صفوں کا متبادل انجام دیں۔

    $parts = ['سیب'، 'ناشپاتی']؛
    $fruits = ['کیلا'، 'سنتری'، ...$حصے، 'تربوز']؛
    // ['کیلا'، 'سنتری'، 'سیب'، 'ناشپاتی'، 'تربوز']؛

  • موقع عددی لٹریلز میں حد بندیوں کے ساتھ بڑی تعداد کی بصری نمائندگی (1_000_000_00)؛
  • معاونت کمزور روابط، جو آپ کو کسی شے کا حوالہ برقرار رکھنے کی اجازت دیتا ہے، لیکن کوڑا اٹھانے والے کو متعلقہ شے کو حذف کرنے سے روکتا ہے؛
  • نئی میکانزم آبجیکٹ سیریلائزیشن (Serializable اور __sleep()/__wakeup() کا مجموعہ)، جس نے سیریلائز ایبل انٹرفیس کی جگہ لے لی، جسے فرسودہ کردیا جائے گا۔

    // آبجیکٹ کی تمام حالتوں پر مشتمل ایک صف لوٹاتا ہے۔
    عوامی تقریب __ سیریلائز (): سرنی؛

    // ایک صف سے کسی چیز کی حالت کو بحال کرتا ہے۔
    عوامی فنکشن __unserialize(array $data): void؛

  • ایک طریقہ سے مستثنیات پھینکنے کی اجازت ہے۔ __toString();
  • آبجیکٹ کوڈ کیشے کو پہلے سے لوڈ کرنے کے لئے مدد شامل کی گئی۔ ترتیب کے لیے پیرامیٹر شامل کیا گیا۔
    opcache.preload، جس کے ذریعے آپ پی ایچ پی اسکرپٹ کی وضاحت کر سکتے ہیں جو سرور کے شروع ہونے پر مرتب اور چلائی جائے گی۔ یہ اسکرپٹ دوسری فائلوں کے اوپک کوڈ کو ان کی براہ راست شمولیت یا opcache_compile_file() فنکشن کے ذریعے لوڈ کر سکتا ہے۔

  • Castagnoli polynomial کا استعمال کرتے ہوئے چیکسم کا حساب لگانے کے لیے ہیش ایکسٹینشن میں crc32c فنکشن شامل کیا گیا۔
  • سوڈیم لائبریری کے نفاذ میں پاس ورڈ ہیشنگ کے طریقوں argon2i اور argin2id کے لیے password_hash() فنکشن میں معاونت شامل کی گئی، اگر PHP بغیر لیبارگن کے بنایا گیا ہے۔
  • شامل کیا گیا فنکشن mb_str_split()، str_split() کی طرح، لیکن بائٹس کے ساتھ نہیں بلکہ ملٹی بائٹ سٹرنگ میں کریکٹر پوزیشنز کے ساتھ کام کرتا ہے۔
  • strip_tags() فنکشن اب ٹیگ کے ناموں کے ساتھ ایک صف کو پاس کرنے کی صلاحیت رکھتا ہے، یعنی strip_tags($str, '') کے بجائے اب آپ strip_tags($str, ['a', 'p']) کی وضاحت کر سکتے ہیں؛
  • proc_open() آپرینڈز کو سٹرنگ چلانے کے بجائے ایک صف میں درج ہونے کی اجازت دیتا ہے، اور نل فائل ڈسکرپٹر کے لیے تھریڈ ری ڈائریکشن اور سپورٹ بھی فراہم کرتا ہے۔

    proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);

    // شیل میں 2>&1 کی طرح
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);

    شیل میں 2>/dev/null یا 2>nul کی طرح
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);

  • Firebird/Interbase، Recode اور WDDX ایکسٹینشن کو بنیادی تقسیم سے خارج کر دیا گیا ہے۔ یہ ایکسٹینشن اب پی ای سی ایل کے ذریعے تقسیم کیے گئے ہیں۔
  • کیٹیگری میں منتقل کر دیا گیا۔ پرانی خصوصیات جیسے کہ قوسین کے بغیر نیسٹڈ ٹرنری آپریٹرز، کرلی منحنی خطوط وحدانی ("$var{$idx}") کا استعمال کرتے ہوئے سرنی عناصر اور تاروں تک رسائی، is_real() فنکشن اور حقیقی میں کاسٹ کرنا، پیرنٹ کلاس کے بغیر پیرنٹ کلیدی لفظ کا استعمال کرتے ہوئے، پیرامیٹر اجازت_url_include کنفیگریشنز ، اشیاء پر array_key_exists() کا استعمال کرتے ہوئے

    فنکشنز get_magic_quotes_gpc(), get_magic_quotes_runtime()، اور
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString()۔

    فنکشنز میں غلط علامتوں پر کارروائی کرنے کی کوشش کرتے وقت ایک متروک فیچر کے استعمال کے بارے میں وارننگ فراہم کی گئی ہے۔
    base_convert()، bindec()، octdec() اور hexdec()، اور جب mb_ereg_replace() میں نان اسٹرنگ پیٹرن کی وضاحت کرتے ہیں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں