php中的"="与"=="是由区别的,
"="是将后面的值赋予变量;
举例说明:
而"=="指得是一种判断,判断两个值是否相等;
if($_GET[action]=="logout"){
echo ...;
}
我想这你应该明白了.
土嘎嘎的粉丝们大家好,$符号是变量或者对象名标识符.$符号后面加上字符串,代表这是一个变量或者是一个对象.
PHP 手册上是这样描述的
其它运算符号
--------------------------------------------------------
除了上述的运算符号之外,还有一些运算符号难以归类.
符号 意义
$ 变量
变量的地址 (加在变量前)
@ 不显示错误信息 (加在函数前)
- 类的方法或者属性
= 数组的元素值
: 条件运算(三目运算符)
其中比较特殊的是三目运算符" ? :",以下例来解释
---------------------------------------------------------------
建议你把教程认真重新看一下.虽然我承认直接看很枯燥,编程的入门就是这样,急不来的.
$arr = ('frui') ='apple'
你这个写法有误,应该是
$arr = array('frui'='apple');
echo $arr['frui']; //显示指定值
中括号和 = 都是数组里常用的符号.
$arr['frui']='apple';
echo $arr['frui'];
这种写法和上面是等效的.用来声明数组索引,或者叫数组下标.随你了.
土嘎嘎的粉丝们大家好:
@在PHP中叫错误抑制符,也就是用来屏蔽错误的.
@之后的表达式如果出错误,是不提示错误信息的,如果不加@出错之后一般是会在浏览器中显示错误信息,加上之后浏览器中就不显示错误信息了.
你可以尝试下,看看加与不加的区别.
在PHP中符号即传的是变量的引用而不是拷贝,引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,它们是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,所以呢同样的内容可以有不同的名字.最接近的比喻是 Unix 的文件名和文件本身 - 变量名是目录条目,而变量内容则是文件本身.引用可以被看作是 Unix 文件系统中的紧密连接.
PHP 的引用允许你用两个变量来指向同一个内容.意思是,当你这样做时:
php
$a =$b
这意味着 $a 和 $b 指向了同一个变量.
注: $a 和 $b 今天这一节是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方.
$bar = new fooclass();
$foo = find_var ($bar);
注: 不用 运算符导致对象生成了一个拷贝.如果你在类中用 $this,它将作用于该类当前的实例.没有用 的赋值将拷贝这个实例(例如对象)并且 $this 将作用于这个拷贝上,这并不总是想要的结果.由于性能和内存消耗的问题,通常你只想工作在一个实例上面.
尽管你可以用 @ 运算符来关闭构造函数中的任何错误信息,例如用 @new,但用 new 语句时这不起效果.这是 Zend 引擎的一个限制并且会导致一个解析错误.
引用做的第二件事是用引用传递变量.这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的.例如:
function foo ($var) {
$var◆◆;
foo ($a);
引用做的第三件事是引用返回.
引用不是什么
如前所述,引用不是指针.这意味着下面的结构不会产生你预期的效果:
function foo ($var){
$var = $GLOBALS["baz"];
foo($bar);
这将使 foo 函数中的 $var 变量在函数调用时和 $bar 绑定在一起,但接着又被重新绑定到了 $GLOBALS["baz"] 上面.不可能通过引用机制将 $bar 在函数调用范围内绑定到别的变量上面,因为在函数 foo 中并没有变量 $bar(它被表示为 $var,但是 $var 只有变量内容而没有调用符号表中的名字到值的绑定).
引用传递
你可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值.语法如下:
注意在函数调用时没有引用符号 - 只有函数定义中有.光是函数定义就足够使参数通过引用来正确传递了.
以下内容可以通过引用传递:
变量,例如 foo($a)
New 语句,例如 foo(new foobar())
从函数中返回的引用,例如:
function bar() {
return $a;
foo(bar());
详细解释见引用返回.
任何其它表达式都不能通过引用传递,结果未定义.例如下面引用传递的例子是无效的:
function bar(){ // Note the missing
引用返回
引用返回用在当你想用函数找到引用应该被绑定在哪一个变量上面时.当返回引用时,使用此语法:
function find_var ($param){
/* ...code... */
return $found_var;
注: 和参数传递不同,这里必须在两个地方都用 符号 - 来指出返回的是一个引用,而不是通常的一个拷贝,同样也指出 $foo 是作为引用的绑定,而不是通常的赋值.
取消引用
当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定.这并不意味着变量内容被销毁了.例如:
$a = 1;
$b = $a;
unset ($a);
不会 unset $b,只是 $a.
再拿这个和 Unix 的 unlink 调用来类比一下可能有助于理解.
引用定位
许多 PHP 的语法结构是通过引用机制实现的,所以上述有关引用绑定的一切也都适用于这些结构.一些结构,例如引用传递和返回,已经在上面提到了.其它使用引用的结构有:
global 引用
当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用.也就是说和这样做是相同的:
$var = $GLOBALS["var"];
这意味着,例如,unset $var 不会 unset 全局变量.
$this
在一个对象的方法中,$this 永远是调用它的对象的引用.
它会抑制错误消息.
PHP支持一个错误控制操作符:at符号(@).当添加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略.
如果已将自定义错误处理程序函数设置为SET错误处理程序()然后它仍然会被调用,但是这个自定义错误处理程序可以(而且应该)调用错误报告()当触发错误的调用前面有@.时,它将返回0.
扩展资料
错误控制运算符顾名思义就是用来控制错误输出,这个控制只是将错误信息屏蔽掉,不让其显示出来,并不是真正的解决错误.
经常在程序中使用某些函数出现一些不必要的错误信息时,可以使用该运算符进行屏蔽,前提是这个错误信息不影响程序的运行.如果对一些影响程序运算的错误,不推荐使用错误控制符,这样不利于消除程序的错误.
下面看一下错误控制运算符的使用实例:
当打开一个不存在的文件时,用"@"来屏蔽错误信息的输出;
在不使用"@"时;
$open_file?= fopen("index.php","r");
会有以下的输出:
上面是一个警告错误信息提示,大致的意思提示我们index.php"这个文件不存在.错误信息在第三行...