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"  

文章:参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小美满

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值