PHP 基础之 PHP 函数与对象

本章主要介绍 PHP 的函数与对象的一些应用:

";

echo strrev(" .dlrow olleH");    // 将字符串次序颠倒
echo str_repeat("Hip ",2);      // 重复字符串
echo strtoupper("hooray! ");   // 将字符串转为大写
echo strtolower("HoOrAy! ");  // 将字符串转为小写
echo ucfirst("hoOrAy!");     // 只将第一个字符大写
// 输出 Hello world. Hip Hip HOORAY! hooray! HoOrAy!

echo "
"; // 整理姓名 function fix_name1($n1, $n2, $n3) { $n1 = ucfirst(strtolower($n1)); $n2 = ucfirst(strtolower($n2)); $n3 = ucfirst(strtolower($n3)); return array($n1, $n2, $n3); // 以数组的形式返回 } print_r(fix_name1("WILLIAM", "henry", "gatES")); // 输出 Array ( [0] => William [1] => Henry [2] => Gates ) echo "
"; $a1 = "WILLIAM"; $a2 = "henry"; $a3 = "gatES"; function fix_name2() // PHP 不允许重名 { global $a1, $a2, $a3; // 不加这句会报变量未定义的错误 $a1 = ucfirst(strtolower($a1)); $a2 = ucfirst(strtolower($a2)); $a3 = ucfirst(strtolower($a3)); } fix_name2(); echo $a1." ".$a2." ".$a3; // 输出 William Henry Gates echo "
"; // global $str = "abc"; 错误:全局变量声明的时候不能初始化 $came_from = htmlentities($_SERVER['SERVER_NAME']); // htmlentities 函数会将所有字符转化为 HTML 实体,如:< 被转化为 < $came_from .= htmlentities($_SERVER['PHP_SELF']); echo $came_from; // 输出 www.bxg.com/练习.php // 如果使用include,则include包含的文件中如果继续调用include,会报错。 // include, include_once 只会试图导入被请求的文件,即便文件没有找到也会继续执行。 // 不使用 require 和 不使用 include 的道理是一样的。 // 所以应该使用 require_once 导入文件。 echo "
"; var_dump(function_exists("fix_name2")); // 检查函数是否存在,包括自定义的函数。函数存在,输出 bool(true) var_dump(function_exists("fix_name3")); // 函数不存在,输出 bool(false) echo phpversion(); // 检测代码运行版本。输出 7.1.1 echo "
"; define("CONSTVAR1", 123); // 定义常量,区分大小写,常量要用""引起来 echo CONSTVAR1; // 访问常量不需要$,输出 123 define("CONSTVAR2", 456, true); // 定义常量,不区分大小写,常量要用""引起来 echo constVar2; // 输出 456 const CONSTVAR3 = 789; // 定义常量,区分大小写,常量不需要用""引起来 echo CONSTVAR3; // 输出 789 echo "
"; // 对象克隆 class User { public $name, $password; // 变量必须要有关键字(public(或var), protected, private)声明,即单独写 $password是错误的; public 后面不加 : // public $time = time(); 类中给变量赋初值时应该是常量,不能是函数或者表达式计算的结果 (注意, 赋值 2*7 可以,代表常量 14,但是赋值 $var * 7 就不可以了,即使 $var = 2) function __construct($param1, $param2) { // 构造函数, 也可以使用类名 (User) 本身 $this -> name = $param1; // 不能使用 $name -> param1,必须要使用 $this $this -> password = $param2; } function __destruct() { // 构造函数 // 再此添加析构函数的语句 } function get_password() { // 用户自定义的函数不能以 __ 开头; 函数不用显式地用关键字声明,默认为 public return $this -> password; // 访问属性或方法时,属性和函数的前面不加 $ // 不能使用 return $password } function test() { // 如果防止子类方法覆盖父类方法,应该在function前面使用final关键字 echo "I'm your father."; } } /* $obj1 = new User; // 构造函数没有参数的时候,或者使用 $obj1 = new User(); $obj1 -> name = "Ma"; // 访问属性或方法时,属性和函数的前面不加 $ $obj2 = $obj1; // 这样做会使 $obj1 和 $obj2 指向同一个对象 $obj2 -> name = "Hao"; echo $obj1->name . " " . $obj2->name; // 输出 Hao Hao echo "
"; $obj1 -> name = "Ma"; $obj2 = clone $obj1; // 使用 clone 操作符 可以创建一个新实例,同时将 obj1 的值赋给 obj2 $obj2 -> name = "Hao"; echo $obj1->name . " " . $obj2->name; // 输出 Ma Hao echo "
"; */ $obj3 = new User("Bing", 123); // 带参数的构造函数 $obj3 -> age = 12 + 13; // 可以在初次使用该属性的同时定义, 此时类中相当于有 $age = 25; 而且,这个变量可以被赋值为 常量、变量或表达式、函数等; 默认为 public print_r($obj3); // 输出 User Object ( [name] => Bing [password] => 123 [age] => 25 ) echo $obj3 -> get_password(); // 输出 123 echo "
"; // 声明常量 class Translate { const ENGLIST = 2; // 定义常量的另外一种方法,一旦定义了一个常量,就不能改变它的值 var $name = "Ma"; // 跟 public 一样,老版本兼容,但不提倡 static $password = 2*4; // 静态属性, 只能赋常量值,不能将函数、表达式赋给 $password static function lookup() { // 在类中定义的静态方法,需要用 类名本身来引用,而不是对象 echo self::ENGLIST; // 使用 self 关键字和 :: 操作符能够直接引用常量,区分大小写 // $this -> name = "hhh"; 静态方法不能访问任何对象属性或方法 echo self::$password; // 使用 self 关键字和 :: 操作符能够直接引用静态属性 } } Translate:: lookup(); // 用类名引用静态函数,以便不用实例化就可以访问; 使用 :: 而不是 -> ; 输出28 echo "
"; // 继承 class Subscriber extends User { public $phone, $email; function __construct($param) { parent::__construct($this->name, $this->password); // 注意!首先调用父类的构造方法 $this->phone = $param; } function display() { echo "Name: " . $this->name . "
"; echo "Password: " . $this->password . "
"; echo "Phone: " . $this->phone . "
"; echo "Email: " . $this->email . "
"; } function test() { echo "I'm your son."; } function test2() { parent::test(); // parent 关键词调用的是父元素的同名函数 } } $objex = new Subscriber("1881099****"); $objex -> name = "ma**"; $objex -> password = "456"; $objex -> email = "82791***@qq.com"; $objex -> display(); // 输出所有属性 $objex -> test(); // 输出 I'm your son. $objex -> test2(); // 输出 I'm your father. ?>

可以针对程序查看对应输出:

PHP 基础之 PHP 函数与对象_第1张图片
result.png

你可能感兴趣的:(PHP 基础之 PHP 函数与对象)