php学习笔记 数组的常用函数

代码如下:

<?php
/*
* 封装性:面向对象三大特性之一
*
* 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节
* 访问权限修饰符 public protected private
* private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问)
*
* 属性可以封装:
* 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用
*
* 成员属性,相当于这个对象中的全局变量
*
* 成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能
*
* 成员属性的值如果不正常,方法执行的功能叶就不正常
*
* 作用:不需要在对象外部改变或读取它的值
* 1.封装
* 再提供一个公有的方法(经过方法对对象成员属性进行赋值和取值就可以控制)
*
*
* 方法也可以封装
*
* 作用:
* 1.使用private修饰使其只能在内部使用
*
* 2.一个类中有100个方法,封装了95个(为另外5个服务的方法),只有5个方法可以使用
*
* 100个成员属性,都让取值,不可以改值;或者只可改值,不可获取值//此种情况下使用以下方法比较方便
* 和封装有关的魔术方法:
*
* __set();//是直接设置[私有的]成员属性值时,自动调用的方法
* __get();//是直接获取[私有的]成员属性值时,自动调用的方法
* __isset();//是直接使用isset()查看对象中私有属性是否存在时,自动调用这个方法
* __unset();//是直接使用unset()删除对象中私有属性时,自动调用的方法
*
*
*
*
*
*
*
*/
class Person{
//x封装成员属性,不需要在对象外部改变
private $name;
private $age;
private $sex;
private __unset($proName){
unset($this->$proName);
}
//是直接查看对象中私有属性是否存在时,自动调用这个方法
//__isset($proName)的使用,$proName代表属性名
private function __isset($proName){
return isset($this->$proName);//isset()返回是否存在
}
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//当获取私有的成员属性时,自动调用此方法
private function __get($proName)
{
//控制所获取的值
if($proName=="age"){
if($this-age>40)
return $this->age-10;
}
return $this->$proName;
}
//当设置私有的成员属性时,自动调用此方法
private function __set($proName,$proValue){
//$proName表示成员属性名,$proValue表示成员属性值
//控制设置范围
if($proName=="age"){
if($proValue > 100 || $proValue<0)
return;
}
$this->$proName=$proValue;
}
//提供公有方法来设置成员属性的值
function setAge($age){
//控制年龄范围,增加安全性
if($age > 100 || $age < 0 )
return;
$this->age=$age;
}
//提供公有方法来获取成员属性的值
function getAge(){
//控制获取年龄的范围
if($this->age < 30)
return $this->age;
else if($this->age<40)
return $this->age-5;
else if($this->age<50)
return $this->age;
else
return $this->age-15;
提供公有方法来 }
function say(){
echo "我的名字:{$this->name},我的年龄:{$this->age},我的姓别:{$this->sex}<br>";
//访问封装过的 run()方法
$this-run();
}
private function run(){
echo '111111111111<br>'
}
function eat(){
}
//析构方法
function __destruct(){
}
}
$p1=new Person("zhangsan",25,"男");
$p2=new Person;
$p3=new Person;
//$p1->age=-50;//因为年龄在外部随意访问,所以成员属性药封装,才有安全性。
$p1->setAge(30);//通过方法来设置成员属性德值
$p1->getAge();//通过方法来获取成员属性德值
//通过添加家魔术方法__set($proName,$proValue) __get($proName),就可以直接调用成员属性了
$p1->say();//可以调用
$p1->run();//私有的方法不能直接调用
//删除$p1里面的name
unset($p1->name);
//判断name是否存在
if(isset($p1->name)){
echo "存在<br>";
}else{
echo "没有这个成员 <br>";
}
?>

作者:代号极光
出处:http://zizhuyuan.cnblogs.com

(0)

相关推荐

  • PHP 正则表达式常用函数使用小结

    在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其使用以"preg_"为前缀命名的函数.另一套是由POSIX(Portable Operation System interface)扩展库提供的.POSIX扩展的正则表达式由POSIX 1003.2定义,一般使用以"ereg_"为前缀命名的函数. 两套函数库的功能相似,

  • PHP函数常用用法小结

    魔术函数 魔术函数是PHP中内置的语言特性,当程序执行到某种情况时,如果定义了这些魔术函数(php手册中称之为"Overloading"),则PHP会调用他们,同时也会传入相应的参数,可以认为是PHP执行过程中的钩子函数.常见的魔术函数有__construct, __destruct , __call, __get, __set, __isset, __unset __sleep, __wakeup, __toString, __clone 以及__autoload .它们 可以用来自

  • PHP GD 图像处理组件的常用函数总结

    PHP图像处理组件GD的常用函数总结--概述 PHP有一系列很强大的图形处理函数,他们都统一包含在GD库中,这些函数已经基本满足了一个网络应用的常规图像处理要求,而且使用十分简单. 而我们有好多搞PHP的朋友(包括我)都认为这些函数反正不是很常用,都懒的去研究或者了解这些函数了,而当要面临图像处理方面的事情的时候,又很茫然,书道用时方恨少啊! 本系列这几篇文章就是给大家归纳一下PHP的图像处理函数,不要求掌握,只希望能让各位对这些函数有个大体印象,最起码,有图像处理方面的讨论或者问题的时候,心里

  • PHP中的MYSQL常用函数(php下操作数据库必备)

    1.mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 例: $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql

  • PHP常用函数小技巧

    1. 返回文件扩展名 function getformat($file) { $ext=strrchr($file,"."); $format=strtolower($ext); return $format; } 2.格式化变量 <? $num = 1; printf("%04d", $num); ?> 3.php重定向网页 // 例如重定向到www.cgsir.com (注意重定向之前不要有html内容) header("location:

  • PHP开发过程中常用函数收藏

    1.打印数组函数 复制代码 代码如下: function _print($array) { echo ("<pre>"); print_r($array); echo ("</pre>"); } 2.截取字串 复制代码 代码如下: func_chgtitle function func_chgtitle($str,$len) { if(strlen($str)>$len) { $tmpstr = ""; $strle

  • PHP常用技巧总结(附函数代码)

    PHP文件读取函式 复制代码 代码如下: //文件读取函式 function PHP_Read($file_name) { $fd=fopen($file_name,r); while($bufline=fgets($fd, 4096)){ $buf.=$bufline; } fclose($fd); return $buf; } ?> 文件写入函式 复制代码 代码如下: //文件写入函式 function PHP_Write($file_name,$data,$method="w&quo

  • PHP 常用函数库和一些实用小技巧

    文件读取函式 //文件读取函式 function PHP_Read($file_name) { $fd=fopen($file_name,r); while($bufline=fgets($fd, 4096)){ $buf.=$bufline; } fclose($fd); return $buf; } ?> 文件写入函式 //文件写入函式 function PHP_Write($file_name,$data,$method="w") { $filenum=@fopen($fi

  • php学习笔记 数组的常用函数

    复制代码 代码如下: <?php /* * 封装性:面向对象三大特性之一 * * 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 * 访问权限修饰符 public protected private * private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的

  • JavaScript学习笔记之取值函数getter与取值函数setter详解

    目录 取值函数getter和存值函数setter 使用get与set函数有两个好处 取值函数getter和存值函数setter get和set是两个关键字,用于对某个属性设置存值函数和取值函数,拦截该属性的存取行为. 那么,这两个东西要怎么用呢?而且他们和我们的平日里写的业务又是怎么练习起来的呢? 首先,我们先看一段恩简单的代码: var person={ myname:'' } person.myname='lsh' console.log(person.myname); 相信大家一眼就看出来

  • Vue学习笔记进阶篇之函数化组件解析

    这两天学习了Vue.js 感觉函数化组件这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记 介绍 之前创建的锚点标题组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法.它只是一个接收参数的函数. 在这个例子中,我们标记组件为 functional, 这意味它是无状态(没有 data),无实例(没有 this 上下文). 一个 函数化组件 就像这样: Vue.component('my-component', { functional: true, // 为了弥补缺少的

  • javascript的数组和常用函数详解

    1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象.Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能. 1.1 定义数组 声明有10个元素的数组: 复制代码 代码如下: var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,例如 a[2] 但此时元素并未初始化,调用将返回 undefined.以下代码定义了个可变数组,并

  • JavaScript手写数组的常用函数总结

    前言 在开发过程中,我们常常使用数组的一些 api 相关操作,其中包含 forEach . filter . find . findIndex . map . some . every . reduce . reduceRight 等函数方法. 今天,我们试试手写这些函数,实现数组这些函数方法.为了方便,直接在数组原型对象 prototype 上扩展. 本文 Githab 已上传,更多往期文章已分类整理. 正文 参数说明 callbackFn 回调函数 thisArg 执行 callbackFn

  • Lua学习笔记之表和函数

    Lua中的表和函数比较重要,正是因为二者的结合才完成了很多很多的功能,Lua才变得如此的强大,所以有必要仔细的学习一下表和函数.如下的代码体现了表的用法. --表 --可以使用构造器来初始化表,表是Lua特有的功能强大的东西.最简单的构造函数是{},用来创建一个空表. local days = {"xiao", "ta", "hello", "lua"} --第一个元素索引为1,以后的类推,这一点和其他语言的第一个元素索引是0

  • php学习笔记 数组遍历实现代码

    复制代码 代码如下: <?php /* 数组的遍历 * * 1.使用for语句循环遍历数组 * 1.其他语言(只有这一种方式) * 2.PHP中这种方式不是首选的方式 * 3.数组必须是索引数组,而且下标必须是连续的. * (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历) * * 2.使用foreach语句循环遍历数组 * foreacho(数组变量 as 变量值){ * //循环体 * } * 1.循环次数由数组的元素个数决定 * 2.每一次循环都会将数组中的元素分别赋值给后面变量

  • ORACLE学习笔记-添加更新数据函数篇

    一.添加数据 /*添加数据*/ insert into STU values('stu0004','赵一',18,1,"kc0004"); insert into STU(STU_ID,STU_NAME,STU_AGE,STU_SET ) values('stu0013','储十一',19,1); 说明:如果不指定将数据添加到那个字段,那么此时必须列出全部数据,如果列出字段,则一一对应,必须列出约束不为空的所有字段,否则报错. 二.更新数据 /*更新数据*/ update STU SE

  • python学习笔记之调用eval函数出现invalid syntax错误问题

    pytho的使用和分发完全是免费的,它是一种面向对象的语言,它的.它的类模块支持多态,操作符重载和多重继承等高级概念,并且以python特有的简洁的语法和类型,OOP十分易于使用.python内置了众多预编译并可移植的功能模块,这些功能模块叫做标准库(standard library).python可以调用C和C++的库,可以被C和C++的程序调用,可以与java组件集成,可以和COM和.Net等框架进行通信,并且可以通过SOAP.XML-RPC和CORBA等接口与网络进行交互,所以,pytho

  • jQuery学习笔记之jQuery构建函数的7种方法

    一:$(selectorStr[,限制范围]),接受一个选择器(符合jQuery规范的字符串),返回一个jQuery对象; 复制代码 代码如下: //$(selector[,限制范围])         $(".guo").click(function () {//这里没有context参数             $("a.aguo", this).css({"color":"red"});//this就是context参数

随机推荐