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

    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 => ['پائپ', '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

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster