201411-11 JavaScript中变量的存储方式 基本原理前面文章提到过,在js中变量包括5中基本类型以及一个复杂数据类型Object,当然常用的函数和数组都是对象。对于基本类型和复杂类型,对应着两种不同的存储方式–栈存储和堆存储。为什么要实现两种存储方式的理由很简单,就是基本类型一旦初始化则内存大小固定,访问变量就是访问变量的内存上实际的数据,称之为按值访问。而对象类型说不定什么时候就会增加自身的大小,内存大小不固定。比如动态添加对象的属性、动态增加数... 继续阅读 >
201411-07 PHP基础之数据类型7——资源(Resource) 资源resource是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。所有这些函数及其相应资源类型见附录。参见get_resource_type()。转换为资源由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。释放资源由于PHP4Zend引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和Java一样)。这种情况下此资源使... 继续阅读 >
201411-07 PHP基础之函数3——函数返回值 值通过使用可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。更多信息见 return。Note:如果省略了 return,则返回值为 NULL。Example#1 return 的使用<?phpfunction square($num){ return $num * $num;}echo square(4); // outputs '16'.?>函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。Example#... 继续阅读 >
201411-07 PHP基础之类和对象21——对象和引用 在php5的对象编程经常提到的一个关键点是“默认情况下对象是通过引用传递的”。但其实这不是完全正确的。下面通过一些例子来说明。php的引用是别名,就是两个不同的变量名字指向相同的内容。在php5,一个对象变量已经不再保存整个对象的值。只是保存一个标识符来访问真正的对象内容。当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝,这个... 继续阅读 >
201411-07 PHP基础之引用的解释1——引用是什么、不是什么、做什么 引用是什么在PHP中引用意味着用不同的名字访问同一个变量内容。这并不像C的指针,替代的是,引用是符号表别名。注意在PHP中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是Unix的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是Unix文件系统中的hardlink。引用做什么PHP的引用允许用两个变量来指向同一个内容。意思是,当这样做时:<?php... 继续阅读 >
201411-07 PHP基础之引用的解释2——引用传递和返回 引用传递可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。语法如下:<?phpfunctionfoo(&$var){$var++;}$a=5;foo($a);//$ais6here?>注意在函数调用时没有引用符号——只有函数定义中有。光是函数定义就足够使参数通过引用来正确传递了。在最近版本的PHP中如果把&用在 foo(&$a); 中会得到一条警告说“Call-timepass-by-reference”已经过时了。... 继续阅读 >
201411-07 PHP基础之引用的解释3——引用的取消和定位 取消引用当unset一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:<?php$a=1;$b=&$a;unset($a);?>不会unset $b,只是 $a。再拿这个和Unix的 unlink 调用来类比一下可能有助于理解。引用定位许多PHP的语法结构是通过引用机制实现的,所以上述有关引用绑定的一切也都适用于这些结构。一些结构,例如引用传递和返回,已经在上面提到了。其它... 继续阅读 >