PHP学习笔记四(超级全局变量 和 魔术常量)

Posted 岁月可贵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP学习笔记四(超级全局变量 和 魔术常量)相关的知识,希望对你有一定的参考价值。

php 超级全局变量

$GLOBALS

超级全局变量组 在一个PHP脚本的全部作用域中都可以访问

$x = 75; 
$y = 25;
 
function addition() 
 
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 

 
addition(); 
echo $z; // 100

$_SERVER

包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组

这里展示部分的 $_SERVER,具体可以查看参考资料

// 当前执行脚本的文件名 PHP 4.3.0 版本开始
echo $_SERVER['PHP_SELF'];
// 当前运行脚本所在的服务器的 IP 地址
echo $_SERVER['SERVER_ADDR'];
// 请求页面时通信协议的名称和版本。例如,"HTTP/1.0"
echo $_SERVER['SERVER_PROTOCOL'];
// 访问页面使用的请求方法
echo $_SERVER['REQUEST_METHOD'];
// query string(查询字符串)
echo $_SERVER['QUERY_STRING'];

$_REQUEST

用于收集html表单提交的数据

<html>
<body>
<!-- $_SERVER['PHP_SELF']; 当前执行脚本的地址 -->
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
 
</body>
</html>

$_POST

收集表单数据 method=“post”

<html>
<body>
 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php 
$name = $_POST['fname']; 
echo $name; 
?>
 
</body>
</html>

$_GET

收集表单数据 method=“get” 也可以收集URL中发送的数据

<a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a>

<!--test_get.php-->
<?php 
echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];
?>

文章:参考资料


PHP 魔术常量

魔术常量它们的值随着它们在代码中的位置改变而改变 这些特殊的常量不区分大小写

__LINE__

echo '这是第 " '  . __LINE__ . ' " 行';

__FILE__

文件的完整路径和文件名

echo '该文件位于 " '  . __FILE__ . ' " ';

__DIR__

文件所在的目录

echo '该文件位于 " '  . __DIR__ . ' " ';

__FUNCTION__

函数名称

function test() 
    echo  '函数名为:' . __FUNCTION__ ;

test(); // 函数名为:test

__TRAIT__

代码复用

<?php
class Base 
    public function sayHello() 
        echo 'Hello ';
    

 
trait SayWorld 
    public function sayHello() 
        parent::sayHello();
        echo 'World!';
    

 
class MyHelloWorld extends Base 
    use SayWorld;

 
$o = new MyHelloWorld();
$o->sayHello(); // Hello World!
?>

__TRAIT__

类的名称 PHP 4.3.0 新加

注意自 PHP 5.4 起 CLASS 对 trait 也起作用。当用在 trait 方法中时,CLASS 是调用 trait 方法的类的名字

class test 
    function _print() 
        echo '类名为:'  . __CLASS__ . "<br>";
        echo  '函数名为:' . __FUNCTION__ ;
    

$t = new test();
$t->_print();

__METHOD__

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)

class classname

    function __construct()
    
        echo __METHOD__,"\\n";
    

$a = 'classname';
$obj = new $a; // classname::__construct

__NAMESPACE__

当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)

在动态创建名称时很有用

namespace MyProject;
 
echo '命名空间为:"', __NAMESPACE__, '"'; // 命名空间为:"MyProject"  

文章:参考资料

以上是关于PHP学习笔记四(超级全局变量 和 魔术常量)的主要内容,如果未能解决你的问题,请参考以下文章

PHP超级全局变量魔术变量和魔术函数

PHP超级全局变量魔术变量和魔术函数

PHP超级全局变量魔术变量和魔术函数

PHP超级全局变量魔术变量和魔术函数

PHP超级全局变量魔术变量和魔术函数

PHP超全局变量