php - PHP 中的 C 风格变量初始化

标签 php c++ variables scope

PHP 中有局部变量、私有(private)变量、静态变量和公共(public)变量吗?如果是这样,您能否提供每个示例以及它们的范围如何在类内外和内部函数中展示?

最佳答案

我不了解 C++,但了解 PHP 的工作原理:

对于函数作用域:

<?php

  $b = 6;

  function testFunc($a){
    echo $a.'-'.$b;
  }

  function testFunc2($a){
    global $b;
    echo $a.'-'.$b;
  }

  testFunc(3);
  testFunc2(3);

?>

输出是

3-
3-6

函数内的代码只能使用 global 关键字访问函数外的变量。参见 http://php.net/manual/en/language.variables.scope.php

至于类:

<?php

class ExampleClass{

  private $private_var = 40;
  public $public_var = 20;
  public static $static_var = 50;

  private function classFuncOne(){
    echo $this->private_var.'-'.$this->public_var; // outputs class variables
  }

  public function classFuncTwo(){
    $this->classFuncOne();
    echo $private_var.'-'.$public_var; // outputs local variable, not class variable
  }

}

$myobj = new ExampleClass();

$myobj->classFuncTwo();
echo ExampleClass::$static_var;
$myobj->classFuncOne(); // fatal error occurs because method is private

?>

输出将是:

40-20
-
50
Fatal error: Call to private method ExampleClass::classFuncOne() from context '' in C:\xampp\htdocs\scope.php on line 22

需要注意的一点是:PHP 没有变量初始化,尽管据说可以设置或不设置变量。设置变量时,它已被分配了一个值。您可以使用 unset 删除变量及其值。未设置的变量等同于 false,如果将它与所有错误输出一起使用,您将看到 E_NOTICE 错误。

关于php - PHP 中的 C 风格变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747254/

相关文章:

使用 WIN32_NetworkAdapter 的启用/禁用方法的 C++ 编码

c++ - 除了删除派生类中动态分配的内存外,是否有使用纯虚拟析构函数的原因?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php查询无法找出问题

php - 如何每秒自动更新mysql数据库?

c++ - 传递 constexpr 函数以在编译时使用

php - 让 PHP 函数默认使用全局变量?

php - 如何在浏览器中强制下载图像?

javascript - 无法将变量从 PHP 传递到 JS

Python,对一大组变量进行分组