PHP ?? ??
PHP? ???? ?? ????? ?? ??? ??? ??? ?????.
??? ?? ??? ??? ?? ?????? ?? ???? ??? ?? ?????? ????? ?? ?? ?? ?? ??? ?? ??? ???? ?????.
????? ??? ?? ?? ??? 8?? ?? ??? ????.
?? ?? __LINE__ ?? ????? ?? ?? ?????. ??? ?? ??? ????? ???? ??? ??? ????.
__LINE__
??? ?? ? ?????.
?:
<?php
echo '? ?? " ' . __LINE__ . ' "???.
?>
? ?? ?? ??? ??? ?????.
This is the "? ??" ?
__FILE__
??? ?? ?? ? ?? ?????. ??? ?? ??? ???? ?? ??? ??? ??? ?????.
PHP 4.0.2?? __FILE__?? ?? ?? ??(??? ??? ?? ??? ?? ??)? ???? ??? ? ?? ????? ??? ?? ??? ???? ?????.
?:
<?php
echo echo '??? " ' . __FILE__ . ' " '? ????.
?>
? ??? ?? ??? ??? ?????.
??? "E:wampwwwtestindex.php"? ????. //??? ??? ?? ??? ????
__DIR__
??? ??? ???????. ??? ?? ??? ???? ?? ??? ??? ?? ????? ?????.
dirname(__FILE__)? ?????. ???? ??? ?? ????? ?? ?? ?? ???? ???? ????. (PHP 5.3.0? ??? ??)
????:
<?php
echo echo '??? " ' . __DIR__ . ' " '? ????. > ;
??? "E:wampwwwtest"
? ????.__FUNCTION__
?? ??? ??? ??? (PHP 4.3?? ?? ???????. 0). PHP 5?? ? ??? ??? ?? ?? ??? ?????(???? ??). PHP 4??? ? ?? ?? ??????. ?:<?php function test() { echo '函數(shù)名為:' . __FUNCTION__ ; } test(); ?>? ?? ?? ??? ??? ????.?? ??? ??? ????. test
__CLASS__
?? ???? ??(PHP 4.3.0? ??? ??). PHP 5?? ? ??? ????? ? ???? ??? ?????(???? ??). PHP 4?? ? ?? ?? ??????. ??? ???? ???? ??? ??(?: FooBar)? ?????. PHP 5.4?? __CLASS__? ???? ?????. ?? ??? ??? ???? ?? __CLASS__? ?? ???? ???? ???? ?????.<?php class test { function print() { echo '類名為:' . __CLASS__ . "<br>"; echo '函數(shù)名為:' . __FUNCTION__ ; } } $t = new test(); $t-> print(); ?>? ?? ?? ??? ??? ????.
???? : test
??? : print
???(classes)? ???? ??? PHP Object Orientation?? ??? ???????.
__TRAIT__
?? ??(PHP 5.4.0? ??? ??). PHP 5.4.0?? PHP? ????? ?? ??? ??? ?????.
?? ???? ??? ??(?: FooBar)? ?????.
?? ????? ??? ??? ??? SayWorld Trait? MyHelloWorld ???? ?? ??????. ?? ??? MyHelloWorld ???? ??? ???? ?????. ?? ??? ?? ???? ???? ?? ???? ?????, ?? ???? ?? ???? ???? ????? ????.
<?php class Base { public function sayHello() { echo 'Hello'; } } trait SayWorld { public function sayHello() { parent::sayHello(); //parent:: 用于調(diào)用父類的方法 echo 'World!'; } } class MyHelloWorld extends Base { //extends 用來繼承一個類 use SayWorld; } $o = new MyHelloWorld(); //使用 new 運算符來實例化該類的對象 $o->sayHello(); ?>
? ??? ?? ??? ??? ????.
Hello World!
__METHOD__
???? ??? ??(PHP 5.0.0?? ?? ???). ??? ?? ???? ??? ?????(???? ??).
?:
<?php function test() { echo '函數(shù)名為:' . __METHOD__ ; } test(); ?>
? ?? ?? ??? ??? ????.
?? ??? ??? ????. test
__NAMESPACE__
?? ??????? ?????(???? ??). ? ??? ??? ??? ?????(PHP 5.3.0? ??? ??).
?:
<?php
namespace MyProject
echo '???????: "', __NAMESPACE__, '"' // "MyProject" ??
?>
? ??? ?? ??? ??? ????.
??????? "MyProject"