斯纳柏旗舰店,7分裤,5分裤,男装,T恤,衬衫 如何修身养性_女人如何修身养性 柏努旗舰店,断码,丝光棉短袖t恤,柏努,t恤,羽绒服 如何保持党的纯洁性_从哪些方面保持党的纯洁性 如何保养眼部肌肤_眼部肌肤怎么保养? 堡威驰旗舰店,威驰,堡威驰,t恤,休闲裤,堡威驰 怎样有效瘦小腿 如何使用淘金币_手机淘宝的淘金币怎么用 庄子旗舰店,男t恤,大码t恤,庄子,zoranzi,t恤 如何从第三页设置页码_word2010怎么从第三页开始设置页码 杰克法图旗舰店,夹克外套,棉衣外套,加绒打底衫,加绒t恤,羽绒服外套 绿壳头旗舰店,绿壳头,polo衫,t恤,绿壳头,五分裤 如何与家长沟通_教师如何和家长沟通 女人在经期减肥需注意的问题 benma旗舰店,奔马,奔马,男装,羽绒服,棉衣 如何下载mv_请问怎么下载歌曲和MV,而且可以放在汽车上播放?急 dx男装旗舰店,西服套装,amp,dx,d&x,t恤 streetarea旗舰店,街头,地带,streetarea,t恤,休闲裤 马度卡卡旗舰店,休闲,t恤,男士,夏季,休闲裤 如何上好体育课_学生如何上好体育课 有效利用经期减肥 觉非旗舰店,西装领,休闲短袖t恤衫,觉非,t恤,夹克 如临大敌的意思_居高临下身临其境欢迎光临如临大敌的临意思对吗 sstriny施特尼旗舰店,修身小西装,男士休闲西服,特尼,施特尼,商务休闲西服 好高骛远是什么意思_不好高骛远,不急功近利什么意思 七秦旗舰店,七秦,t恤,衬衫,丝光棉,中年 好逸恶劳的意思_好逸恶劳是什么意思 产后瘦肚子的小妙招

PHP编程笔记为您提供PHP编程的基础知识参考,包括全局变量存储,函数参数,对象声明基础使用等;

Contents

php笔记

1.要在一个函数中访问一个全局变量,需要使用 global 关键字。

function myTest()
{
    global $x,$y;
    $y=$x+$y;
}
 

PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

$x=5;
$y=10;
 
function myTest()
{
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

 

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

要做到这一点,请在您第一次声明变量时使用 static 关键字:

function myTest()
{
    static $x=0;
    echo $x;
    $x++;
}
 
myTest();
myTest();
myTest();
?>

函数参数

<?php
function myTest($x)
{
    echo $x;
}
myTest(5);
?>

echo 和 print 区别:

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串,返回值总为 1

 PHP var_dump() 函数返回变量的数据类型和值:

$x = 10.365;
var_dump($x);

 

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

<?php
class Car
{
  var $color;
  function Car($color="green") {
    $this->color = $color;
  }
  function what_color() {
    return $this->color;
  }
}
?>

  以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。

定义常量

最后一个参数是大小写是否敏感

define("GREETING", "欢迎访问 Runoob.com");

define("GREETING", "欢迎访问 Runoob.com", true);

字符串

并置运算符 (.) 用于把两个字符串值连接起来。

<?php 
$txt1="Hello world!"; 
$txt2="What a nice day!"; 
echo $txt1 . " " . $txt2; 
?>

strlen() 函数返回字符串的长度(字符数)。

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

<?php 
echo strpos("Hello world!","world"); 
?>

== 等于

===绝对等于,类似js里的===

and 与,or 或,xor 异或

&& 与,|| 或,!非

数组合并用 + 

$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // $x 和 $y 数组合并

数组

$cars=array("Volvo","BMW","Toyota");

遍历数组

<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
 
for($x=0;$x<$arrlength;$x++)
{
    echo $cars[$x];
    echo "<br>";
}
?>

关联数组

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

 

数组排序:很多种比如

<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>

PHP超级全局变量

http://www.runoob.com/php/php-superglobals.html

PHP 超级全局变量列表:

  • 全局变量数组
  • $GLOBALS
  • 获取server相关变量的值,比如$_SERVER['REMOTE_ADDR']来获取ip
  • $_SERVER
  • 获取页面传来的参数,比如$name = $_REQUEST['fname']; 
  • $_REQUEST
  • $name = $_POST['fname']; 
  • $_POST
  • echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

post实例

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_POST['fname']; 
echo $name; 
?>

</body>
</html>

foreach循环

<?php
$x=array("one","two","three");
foreach ($x as $value)
{
    echo $value . "<br>";
}
?>

PHP 的真正威力源自于它的函数。

在 PHP 中,提供了超过 1000 个内建的函数。

PHP 魔术变量

<?php echo '这是第 " ' . __LINE__ . ' " 行'; ?>

<?php echo '该文件位于 " ' . __FILE__ . ' " '; ?>

<?php echo '该文件位于 " ' . __DIR__ . ' " '; ?>
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test()?>
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>

__TRAIT__

优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}
 
trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}
 
class MyHelloWorld extends Base {
    use SayWorld;
}
 
$o = new MyHelloWorld();
$o->sayHello();
?>

默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。

命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。

< ?php  
// 定义代码在 'MyProject' 命名空间中  
namespace MyProject;  
 
// ... 代码 ...  

以下代码会出现语法错误:
html> <?php namespace MyProject; // 命名空间前出现了“<html>” 会致命错误 - 命名空间必须是程序脚本的第一条语句 ?>

 

子命名空间

<?php
namespace MyProjectSubLevel;  //声明分层次的单个命名空间


PHP 面向对象

对象的主要三个特性:

  • 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。
  • 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。
  • 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

类定义如下

<?php
class phpClass {
  var $var1;
  var $var2 = "constant string";
  
  function myfunc ($arg1, $arg2) {
     [..]
  }
  [..]
}
?>

 

$runoob = new Site; 

// 调用成员函数,设置标题和URL 
$runoob->setTitle( "菜鸟教程" ); 

// 调用成员函数,获取标题和URL 
$runoob->getTitle(); 

构造函数

function __construct( $par1, $par2 ) {
   $this->url = $par1;
   $this->title = $par2;
}

析构函数

析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数

<?php
class MyDestructableClass {
   function __construct() {
       print "构造函数n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "销毁 " . $this->name . "n";
   }
}

$obj = new MyDestructableClass();
?>

继承

class Child extends Parent {
   // 代码部分
}

接口
<?php

// 声明一个'iTemplate'接口
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}


// 实现接口
class Template implements iTemplate
{
    private $vars = array();
  
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
  
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }
 
        return $template;
    }
}

常量

const constant = '常量值';

抽象类
bstract class AbstractClass
{
 // 强制要求子类定义这些方法
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // 普通方法(非抽象方法)
    public function printOut() {
        print $this->getValue() . PHP_EOL;
    }
}

static final同java

调用父类构造方法

PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。