PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHP7の一様変数構文


古いバージョンのPHPでは、不整合の問題に直面していました。例:$ {$ first [‘name’]}。この構文は混乱を招く可能性があります。または、構文に一貫性がないと言えます。不整合の問題を克服するために、PHP7は「一様変数構文」と呼ばれる新しい構文を追加しました。

一様変数構文は、変数を左から右に評価します。一様変数構文を使用するには、中括弧を追加する必要があります。たとえば、

echo ${$first[‘name’]};

一様変数構文を使用すると、演算子を組み合わせることができます。また、古い評価が使用されている場合は、一部の式の下位互換性が失われる可能性があります。

<?php
   $x = (function() {
      return 20 - 10;
      })
   ();
   echo "$x\n";
?>

出力

上記のPHPプログラムの出力は次のようになります。

10

注: 上記のプログラムはすぐに関数式を呼び出します。

一様変数構文は、既存の構文の新しい組み合わせを使用します。たとえば、

$foo([‘bar’])();

一様変数構文は、関数によって返される文字列の文字を逆参照できます。

[$obj, $obj1] [0]->pro;

場合によっては、PHP 7はネストされた二重コロン(::)、

をサポートします。
$foo[‘bar’]::$baz;

ネストされたメソッド/関数呼び出し

ネストされたメソッドと関数の呼び出し、または任意の呼び出し可能オブジェクトを使用して、括弧を2倍にすることができます。

foo()(); //return by a function callable
$foo->bar()(); // return by an instance method
Foo::bar()(); // static method
$foo()(); // return by another callable

任意の式の間接参照

PHPでは、括弧を含む有効な式を逆参照できるようになりました。たとえば、

(exp) [‘foo’] ; // It will access an array key
(exp)->foo; // This will access the property
(exp)->foo(); // It will call to a method etc.

<?php
   function emp() {
      echo "This is emp() \n";
   };
   function dept() {
      echo "This is dept() \n";
      return emp;
   };
   function sub() {
      echo "This is sub()\n";
      return dept;
   };
   sub();
   echo "----------------\n";
   sub()();
   echo "----------------\n";
   sub()()();
?>

出力

上記のプログラムの出力は-

になります
This is sub()
-------------
This is sub()
This is dept()
-------------
This is sub()
This is dept()
This is emp()

  1. PHP変数「11:00AM」をMySQL時間形式に変換しますか?

    DateTimeを使用して、PHP変数「11:00 AM:をMySQL時間形式に変換します。 PHPコードは次のとおりです- $phpTime = '11:00 AM'; echo('The PHP Time Format is ='); echo ($phpTime); $timeFormat = DateTime::createFromFormat( 'H:i A', $phpTime); $MySQLTimeFormat = $timeFormat->format( 'H:i:s'); echo (' 

  2. PHPのextract()関数

    extract()関数は、変数を配列から現​​在のシンボルテーブルにインポートします。正常に抽出された変数の数を返します。 構文 extract(arr, rules, prefix) パラメータ 到着 −指定された配列 ルール −無効な変数名の処理方法を指定します。可能な値は次のとおりです- EXTR_OVERWRITE −デフォルト。衝突すると、既存の変数が上書きされます EXTR_SKIP −衝突時に、既存の変数は上書きされません EXTR_PREFIX_SAME −衝突時に、変数名にプレフィックスが付けられます EXTR_PREFIX_