PHP7Åͳ¼NXª±ü³êÜ·B
PHP7²¸(26)³¼NX̱ü - Qiita
±êAPÉ\¶¾¯Ìbɹ¸AuNXÌæ3Ì\ͪPÆÅØèo³ê½vƨ¦éÆÊ¢Ì©ÈÆv¢Üµ½B
NXªÂ3ÂÌð
NXªÂ3ÂÌð - ¼ö×aÌÍÄÈ_CA[
uR[fBOðx¦éZpv̼ö×aÉæéÆANXÉÍ
- [U[è`^
- ÀÌÄpÌPÊ
- CX^X¶¬í
Ì3ÂÌðª 鯢¢Ü·B NXªµ¢Ãç¢TO¾Æ·êÎA»êͱÌ3ÂÌ\ÍðÜÆßÄÁÄ¢é©çÅ·B
PHPÌ[U[è`^AC^[tF[X
PHPÌêA^Cvqgª èÜ·µAè`µ½NXÍã©çg£·é±ÆªÅ«Ü¹ñiI[vNXÅÍÈ¢jB
if ($obj instanceof FooClass) {
//...
}
±Ìu$objªFooClassÌCX^XÅ évÆ¢¤À¾¯ÅAÁÄ¢é\bhÍmèµÄ¨èA»Ì«¿Íã©çÏX³êܹñBÂÜèPHPÌNXÉÍ[U[è`^ƵÄÌ\ͪ èÜ·B
±Ì[U[è`^Ì\ÍÌÝð¿ACX^X¶¬\ÍàAÀà½È¢TOªØèo³êܵ½B»êªC^[tF[XÅ·B
if ($obj instanceof FooInterface) {
//...
}
PHP7ÅÍßèlÌ^Cvqgàðú³êÜ·ÌÅAÈOæèÍÚ×É^ðLqū鿤ÉÈéŵå¤B®I^t¯ÈÌÅÀs^¸µ©Å«Ü¹ñªAeXgªJo[ūȢÍÍ̸ªÂ\ÉÈéÌÅAæèvOðSɷ鱯ªÅ«éŵå¤B
QlF PHPÌinterfaceÆÍ½© - DÌæ¤É
PHPÌÀÄpÌPÊAgCg
NXÍp³µÄÀðÄp·é±ÆªÅ«Ü·Bµ©µNXÉÍ[U[è`^Ì\ͪàêÈt·éÌÅAp³·éÆFXÆìpªoĵܢܷBPHPÍJavaÉíÁÄA½dp³ÍÖ~·é±ÆÉÈÁĵܢܵ½B
NXÉÍ2Â̽·éðª èÜ·B1ÂÚÍuCX^Xðìé½ßÌàÌvÆ¢¤ðÅA±Ì½ßÉÍu®µ½AKvÈàÌðSÁ½Aå«ÈNXvÅ éKvª èÜ·B2ÂÚÍuÄpÌPÊvÆ¢¤ðÅA±Ì½ßÉÍu@\²ÆÌA]vÈàÌðÁĢȢA¬³ÈNXvÅ éKvª èÜ·B
NXªuCX^Xðìé½ßÌàÌvƵÄgíêĢ鯫ÉÍAÄpÌPÊÆµÄÍå«·¬éÌÅ·B
(R[fBOðx¦éZp p.241)
PHP5.4©ç±ü³ê½gCgÍÄpÌPÊÆµÄØèo³ê½TOÅ·B
Àð¿Ü·ªACX^X̶¬\ÍÍ èܹñµA[U[è`^ÉàÈè¾Ü¹ñB ^ƵÄÌ\ͪȢÌÍANXÉ~bNXC·éÛÉA\bh¼ðϦéÈÇD«èÉÅ«é©çÅ·B égCgðuseµÄ¢é©çƾÁÄA»ÌNXÉÁèÌ\bhª¶Ý·éÆÍÛØ³êܹñB
trait FooTrait
{
function doSomething() {
echo __METHOD__;
}
}
class Foo {
use FooTrait {
doSomething as fooSomething;
}
}
³¼NXL@ÉæéCX^X¶¬
PHP7̳¼NXL@ª êÎAgCg©ç»ÌêÅCX^Xð¶¬·é±ÆªÅ«Ü·B^ªKvÅ êÎC^[tF[Xð»ÌêÅimplementswè·ê΢¢¾¯B
$obj = new class() implements FooInterface {
use Foo, Baa;
};
NXðnew·éêÉä×ÄL@ªç·Å·ªA»à»ànewð ¿±¿ÉÌÍeX^reBðº°Ü·ÌÅADIReiâT[rXP[^[Å׫ŵå¤B
NXƾ¤TOªó»µAg¢ÌÄéàÌÉÈèÜ·B
NXè`ðgí¸ÉOOPµÄÝé
v·éÉAPHP7ÅÍNXðè`¹¸ÉIuWFNgwüvO~OªÅ«é±ÆÉÈèÜ·B
- ÀÌÄpªµ½¢ÈçÎgCgðè`µÄg¢Üí·B
- ^ðè`µÄO/ãðð\»µ½¢ÈçC^[tF[Xðg¤B
- CX^XÌgݧÄÍDIReiàų¼NXL@ðg¤B
´z
ܾÁÉÀHIÈR[h͢ĢȢÌÅ ÜÅzÅ·ªA¢ë¢ëÏíéÈ ÆB
- DIReiÌ\ÍåB»ÌêÅÝèÅ«éÍͪ·²¦éB
- ÄpūȢÀªÈÈéB
- ÄpūȢ^ªÈÈéB
- fUCp^[ÉúíêÈ¢\[XR[hªªÂ\ÉÈéB
- ¡ÜÅÌfUCp^[ªg¦È¢ÌÅrûÉéêéB
_î³àãªé¯êÇA^Lqð«¿ñÆ·êÎS³àã°çêéÆv¢Ü·B
»ÌÌgotoÆ¢¤êÂÌTO¾Á½à̪whileâbreakâáO@\Æ¢¤àÁÆïÌIÈ@\ɪ³ê½æ¤ÉANXÌTOàêÂÅ͵¢ÃçsÖ¾Á½ÌÅAª³ê½Æð·éÌªæ¢Æv¢Ü·B
PHP7ãÌCuÉÍANXðpÓ¹¸AgCgAC^[tF[XAÈPÈDIRei+ftHgÝ辯õµÄAãÍD«ÉJX^}CYµÄg¢ÈæAÆ¢¤X^XÌà̪»êé©àmêܹñËB±ÌÓæiIȼ¾êÌFlÍǤµÄ¢éÌ©CÉÈ鯱ëÅ·B
wNXðè`·éƩâxwNX~ÍVQx»ñÈɾíêé㪽çʢŷËB