PHP绘本的 游览器

《PHP绘本》第二版:乐趣无限的制作Web应用的九扇全新大门
出版社:翔泳社
发售日期:2017年4月13日

基本的编程知识

自增运算符和自减运算符

++(递增运算符)
–(递减运算符)
请注意,前置和后置可能会导致输出结果不同。

函数

函数是处理提供的值并输出结果的东西。
处理的目标是参数(参数),结果的值是返回值(返回值)。
如此。

回调函数 (huí shù)

用一个函数名作为参数传递,并调用该函数本身。
当想要在函数的参数中使用另一个函数时使用。

匿名函数(闭包)

省略了函数名的内容。

function Hello(){
    print "こんにちは";
}
function callfunc(callable $f){
    $f();
    print"○○さん";
}
callfunc("Hello");

结果
你好,〇〇先生

方便的函数

isset($a):変数に値がセットされているかを判定する。

empty($a):変数が存在しないとき、変数の値が0のとき、falseのときにtrueを返す。

unset($a):変数がセットされてない状態にする。

排列

箱子的排列顺序
array=[1,2,3]
array(0=>1,1=>2,2=>3)
以上两个具有相同的意思。

$a="cat"
echo $a[0]

【结果】c

文件读取

関数回数失敗した時のメッセージと処理require制限なしエラーメッセージが表示される。処理は中止。require_once1回のみ(2回目はスキップ)エラーメッセージが表示される。処理は中止。include制限なし警告メッセージ表示。処理は続行。include_once一回のみ(2回目はスキップ)警告メッセージ表示。処理は続行。

变量

变量的作用域

变量的作用范围。
局部变量:仅在定义变量的函数内部使用。
全局变量:在变量前加上global关键字。适用于整个PHP脚本。

静态函数

在调用函数时,局部变量会被初始化,但将其变为静态变量后,之前调用时的值将被保留。

匿名函数(闭包)

将函数名省略的内容。将其赋值给一个变量,稍后可以调用。

正則表達式

POSIX扩展正则表达式

PHP5.3.0 被标记为不推荐使用,并在PHP7中被删除。

只需要唯一的選項,中文本地化地改述如下:Perl兼容的正则表达式

preg系列的函数可以使用。
preg_match()函数:如果目标字符串匹配模式,则返回1,如果不匹配,则返回0。还可以将匹配的部分提取出来并存储为数组。
preg_match(“/[A-Z]{3}/”,”Hello PHP.”,$array)`
返回的值是0,$array[0]中存储了”PHP”。
preg_replace()函数:进行替换。
preg_split()函数:按照正则表达式匹配的位置将字符串分割。

与文字相关的函数

strtolower():将大写字母转换为小写字母。
strtoupper:将小写字母转换为大写字母。
trim():删除空格。
explode(分隔符,字符串):将字符串按照分隔符进行切割,并将切割后的部分存储在数组中。返回值为数组的值。
implode(连接符,数组):将数组中的元素以连接符进行连接。

在HTML中使用的函数

strip_tags(対象の文字列、消したいタグ):去除标签。
nl2br():在换行符前插入HTML换行符。

与互联网的协调配合

会话

服务器内存空间。

饼干

客户

会话管理

文件处理

基本处理流程
1. 打开文件$fp=fopen(文件名,”模式”),若文件打开成功,则将文件信息存储在$fp中。
2. 写入内容fputs($fp,”写入的字符串”,字节数)
3. 关闭文件fclose($fp)
4. 删除文件unlink(“文件名”)

数据库

关系型数据库管理系统(RDBMS)是一种软件。
SQL是用于命令关系型数据库管理系统的语言。
SQLite(=RDBMS)在PHP5.3.0及更高版本中已经作为标准组件内置进去。

最基本的操作

    1. 创建数据库$新数据库名称=new SQLite3(“数据库文件名”)

写操作的SQL语句$query=SQL语句

执行$result=$创建的数据库名称->exec($query)

断开连接$数据库名称->close()

只需要一种选择,在中文里释义:赠品。

发送电子邮件

编辑 php.ini 文件。
修改 php.ini 配置。

SMTP = mail.XXX.co.jp
sendmail_from = 送信元アドレス

使用mb_send_mail()函数在日语中发送邮件非常方便。
发送成功返回true,发送失败返回false。
mb_send_mail(“收件人邮件地址”,”主题”,”正文”)

命名空间

类,接口,函数,常量的组合。
定义命名空间后,即使在库中命名冲突也能够进行区分。
命名空间的定义
在PHP代码的开头写上。
namespace 名字空间A 或 namespace dir¥名字空间A
引用
名字空间A¥函数()

每次指定命名空间都很麻烦,所以可以使用use来导入。
使用”dir/命名空间A”并保留,之后仅需调用函数名即可。

生成器

可以从函数中依次取出值的机制。

班级

有许多有共同要素(属性/成员)且具有多种类型的事物。
例如)裙子
裙子具有共同要素”名称”和”面料”。
↓用代码表示

class Dress{
    public $name;//ドレスは「名前」をもつ
    public $material;//ドレスは「生地」の種類が存在する。
}

为了Ruby,制作一个新的箱子来存放详细信息。
通过使用关键词”new”创建的变量(在这种情况下是$Ruby),被称为对象,并且类型将成为对象类型。

$Ruby = 一件新裙子。

“Ruby”的名字是“红宝石”,而“生地”是丝绸。

$Ruby->$name = "ruby";
$Ruby->$material = "silk";

在引用对象的变量(成员属性的值)时使用”->”。

class Dress{
    public $name;//ドレスは「名前」をもつ
    public $material;//ドレスは「生地」の種類が存在する。
}
$Ruby=new Dress;
$Ruby->$name = "ruby";
$Ruby->$material = "silk";
$Diamond=new Dress;
$Diamond->$name = "diamond";
$Diamond->$material = "cotton";
$Gold=new Dress;
$Gold->$name = "gold";
$Gold->$material = "hoge";
print
$Ruby->$name."の素材は".$Ruby->$material;
$Diamond->$name."の素材は".$Diamond->$material;
$Gold->$name."の素材は".$Gold->$material;

可以像下面这样,逐行书写:

class Dress{
    public $name;//ドレスは「名前」をもつ
    public $material;//ドレスは「生地」の種類が存在する。
    public function printdate(){    //表示する関数
        print $this->$name."の素材は".$this->$material;
    }
}
$Ruby = new Dress;
$Ruby->$name = "ruby";
$Ruby->$material = "silk";
$Diamond=new Dress;
$Diamond->$name = "diamond";
$Diamond->$material = "cotton";
$Gold=new Dress;
$Gold->$name = "gold";
$Gold->$material = "hoge";
$Ruby->printdate();//クラスの中の関数を呼び出す
$Diamond->printdate();
$Gols->printdate();

在这种情况下,称在类中被创建的函数为方法,并且在使用同一类中的成员时要使用$this。

构造函数和析构函数

构造函数:当对象被实例化时调用的方法。__construct()
析构函数:当对象被销毁时调用的方法。__destruct
用于进行清理工作。

class Piyo{
    public $a;
    public $b;
    public funtion __construct($n,$m){
        $this->a = $n;
        $tshi->b = $m;
    }
}

$deko = new Piyo($nに入れたい値,$mに入れたい値);

继承类

我想在班级A中进行某种改变,但如果使用其他班级A会发生变化就会困扰。
当想要以修改原本的班级A来创建班级B时,就需要继承班级A。
通过继承,B的成员也可以直接使用。但当想要重新定义时,可以使用父类的方法和成员名称进行覆写(override)。但是,如果方法前面标有final,就无法进行覆写。

class B extends A{
    アレンジしたいことをかく。
}

例外

将例外功能封装成类

梨/梨壳(pear/pecl)是用于编写扩展模块和应用程序的库。

广告
将在 10 秒后关闭
bannerAds