#zephir-php函数和异常处理#php
##前言## 先在这里感谢各位zephir开源技术提供者git
通过了一个多月的学习,zephir的文档译文和基础讲解也将近尾声了,后面的内容最为重要也但愿和你们一同更好的学习交流,本节的内容只要是讲解zephir是怎么时候PHP自带的函数库已经特德异常机制处理的,那么让咱们开始本节的旅程把.github
注:笔者水平有限,说的不正确的地方但愿你们多多指正,一同交流技术mvc
附上:函数
喵了个咪的博客:w-blog.cn学习
zephir官网地址:http://zephir-lang.com/spa
github地址:https://github.com/phalcon/zephircode
##php函数##blog
PHP有一个丰富的函数库,您可使用在你的扩展。 调用PHP函数只需正常使用它在你Zephir代码:开发
namespace MyLibrary; class Encoder { public function encode(var text) { if strlen(text) != 0 { return base64_encode(text); } return false; } }
你能够调用用户创建的php函数:
namespace MyLibrary; class Encoder { public function encode(var text) { if strlen(text) != 0 { if function_exists("my_custom_encoder") { return my_custom_encoder(text); } else { return base64_encode(text); } } return false; } }
注意全部PHP函数只接收和返回动态变量。 若是你经过静态类型变量做为参数,一个临时的动态变量将自动被用做桥为了调用函数:
namespace MyLibrary; class Encoder { public function encode(string text) { if strlen(text) != 0 { return base64_encode(text); } return false; } }
相似地,函数返回动态值不能直接分配给静态变量:
namespace MyLibrary; class Encoder { public function encode(string text) { string encoded = ""; if strlen(text) != 0 { let encoded = (string) base64_encode(text); return '(' . encoded . ')'; } return false; } }
Zephir动态提供了一种方法来调用函数,如:
namespace MyLibrary; class Encoder { public function encode(var callback, string text) { return {callback}(text); } }
##异常处理##
Zephir实现异常在很低的水平,为PHP提供相似的行为和功能。
抛出异常时,可使用“捕捉”块捕获异常并容许 开发人员提供适当的处理。
try { //异常均可以在这里抛出 throw new \Exception("This is an exception"); } catch \Exception, e { //处理异常 echo e->getMessage(); }
Zephir提供了一直没有反应的“try”,简单地忽略任何异常在那块:
try { throw new \Exception("This is an exception"); }
一个“catch ”块能够用来捕获不一样类型的异常:
try { //异常均可以在这里抛出 throw new \Exception("This is an exception"); } catch RuntimeException|Exception, e { //处理异常 echo e->getMessage(); }
Zephir容许你把文字或静态类型化变量看成异常的消息:
throw "Test"; // throw new \Exception("Test"); throw 't'; // throw new \Exception((string) 't'); throw 123; // throw new \Exception((string) 123); throw 123.123; // throw new \Exception((string) 123.123);
Zephir做为PHP的异常提供相同的设施,让你知道发生了异常。 例外::getFile()和异常:getLine()返回位置Zephir代码已经被抛出的异常:
Exception: The static method 'someMethod' doesn't exist on model 'Robots' File=phalcon/mvc/model.zep Line=4042 #0 /home/scott/test.php(64): Phalcon\Mvc\Model::__callStatic('someMethod', Array) #1 /home/scott/test.php(64): Robots::someMethod() #2 {main}
##总结##
本节主要讲解了,zephir能够直接使用PHP的函数库而且能够直接调用PHP用户定义的函数,其实这个是对PHP开发这最方便的一件事情,还有对异常处理进行了一些粗略的讲解,那么今天的zephir译文和讲解就到这里了,多谢你们的支持!
注:笔者能力有限有说的不对的地方但愿你们可以指出,也但愿多多交流!
zephir技术交流:246348908 欢迎你们的加入!
感谢zephir开发人员: