我不知道C++,但PHP的工作原理是:
对于函数范围:
<?php
$b = 6;
function testFunc($a){
echo $a.'-'.$b;
}
function testFunc2($a){
global $b;
echo $a.'-'.$b;
}
testFunc(3);
testFunc2(3);
?>
Run Code Online (Sandbox Code Playgroud)
输出是
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
?>
Run Code Online (Sandbox Code Playgroud)
输出将是:
40-20
-
50
致命错误:在第22行的C:\ xampp\htdocs\scope.php中从上下文''调用私有方法ExampleClass :: classFuncOne()
需要注意的一点是:PHP没有变量初始化,尽管可以设置或不设置变量.设置变量后,会为其分配值.您可以使用它unset来删除变量及其值.未设置的变量等效于false,如果将其与所有错误输出一起使用,您将看到E_NOTICE错误.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |