<?php
// Cole Class
namespace Marshall;
class Cole {
const NAME_FIRST = "Cole";
const NAME_LAST = "Marshall";
private $profession;
private $specialties;
function __construct($initialProfession = "Interactive Developer & Designer") {
$this->profession = $initialProfession;
$this->specialties = [
"HTML", "CSS", "JavaScript", "Sass", "jQuery",
"cross-browser compatibility", "mobile/responsive design", "search engine optimization",
"PHP", "MySQL", "REST", "XML", "JSON", "Git", "automation",
"Photoshop", "Illustrator", "After Effects", "Graphic Design", "Typography",
"User Interface (UI) Design", "User Experience (UX) Design", "Motion Graphics"
];
}
public function getFullName() {
return self::NAME_FIRST . ' ' . self::NAME_LAST;
}
public function getProfession() {
return $this->profession;
}
public function setProfession($newProfession) {
return $this->profession = $newProfession;
}
public function getSpecialties() {
return $this->specialties;
}
public function setSpecialties($newSpecialties) {
return $this->specialties = $newSpecialties;
} else {
return false;
}
}
public function getReadableDetails() {
$readable = $this->getFullName() . " is " . (preg_match('/^[aeiou]/i',$this->getProfession())?
"an ":"a ") . $this->getProfession() . " who specializes in "; for ($i = 0; $i < count($this->getSpecialties()); $i++) { $readable .= $this->getSpecialties()[$i];
if ($i == count($this->getSpecialties()) - 2) { $readable .= (count($this->getSpecialties()) > 2?
",":'') . " and "; } else if ($i == count($this->getSpecialties()) - 1) { $readable .= ".";
} else {
$readable .= ", ";
}
}
return $readable;
}
}
// Instantiate Cole
$cole = new \Marshall\Cole();
// Echo Cole's Profession and Specialties
echo $cole->getReadableDetails();
?>
PD9waHAKLy8gQ29sZSBDbGFzcwpuYW1lc3BhY2UgTWFyc2hhbGw7CgpjbGFzcyBDb2xlIHsKCWNvbnN0IE5BTUVfRklSU1QgPSAiQ29sZSI7Cgljb25zdCBOQU1FX0xBU1QgPSAiTWFyc2hhbGwiOwoJcHJpdmF0ZSAkcHJvZmVzc2lvbjsKCXByaXZhdGUgJHNwZWNpYWx0aWVzOwoKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbml0aWFsUHJvZmVzc2lvbiA9ICJJbnRlcmFjdGl2ZSBEZXZlbG9wZXIgJiBEZXNpZ25lciIpIHsKCQkkdGhpcy0+cHJvZmVzc2lvbiA9ICRpbml0aWFsUHJvZmVzc2lvbjsKCQkkdGhpcy0+c3BlY2lhbHRpZXMgPSBbCgkJCSJIVE1MIiwgIkNTUyIsICJKYXZhU2NyaXB0IiwgIlNhc3MiLCAialF1ZXJ5IiwKCQkJImNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eSIsICJtb2JpbGUvcmVzcG9uc2l2ZSBkZXNpZ24iLCAic2VhcmNoIGVuZ2luZSBvcHRpbWl6YXRpb24iLAoJCQkiUEhQIiwgIk15U1FMIiwgIlJFU1QiLCAiWE1MIiwgIkpTT04iLCAiR2l0IiwgImF1dG9tYXRpb24iLAoJCQkiUGhvdG9zaG9wIiwgIklsbHVzdHJhdG9yIiwgIkFmdGVyIEVmZmVjdHMiLCAiR3JhcGhpYyBEZXNpZ24iLCAiVHlwb2dyYXBoeSIsCgkJCSJVc2VyIEludGVyZmFjZSAoVUkpIERlc2lnbiIsICJVc2VyIEV4cGVyaWVuY2UgKFVYKSBEZXNpZ24iLCAiTW90aW9uIEdyYXBoaWNzIgoJCV07Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldEZ1bGxOYW1lKCkgewoJCXJldHVybiBzZWxmOjpOQU1FX0ZJUlNUIC4gJyAnIC4gc2VsZjo6TkFNRV9MQVNUOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRQcm9mZXNzaW9uKCkgewoJCXJldHVybiAkdGhpcy0+cHJvZmVzc2lvbjsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0UHJvZmVzc2lvbigkbmV3UHJvZmVzc2lvbikgewoJCXJldHVybiAkdGhpcy0+cHJvZmVzc2lvbiA9ICRuZXdQcm9mZXNzaW9uOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRTcGVjaWFsdGllcygpIHsKCQlyZXR1cm4gJHRoaXMtPnNwZWNpYWx0aWVzOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRTcGVjaWFsdGllcygkbmV3U3BlY2lhbHRpZXMpIHsKCQlpZiAoaXNfYXJyYXkoJG5ld1NwZWNpYWx0aWVzKSkgewoJCQlyZXR1cm4gJHRoaXMtPnNwZWNpYWx0aWVzID0gJG5ld1NwZWNpYWx0aWVzOwoJCX0gZWxzZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFJlYWRhYmxlRGV0YWlscygpIHsKCQkkcmVhZGFibGUgPSAkdGhpcy0+Z2V0RnVsbE5hbWUoKSAuICIgaXMgIiAuIChwcmVnX21hdGNoKCcvXlthZWlvdV0vaScsJHRoaXMtPmdldFByb2Zlc3Npb24oKSk/ImFuICI6ImEgIikgLiAkdGhpcy0+Z2V0UHJvZmVzc2lvbigpIC4gIiB3aG8gc3BlY2lhbGl6ZXMgaW4gIjsKCQlmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+Z2V0U3BlY2lhbHRpZXMoKSk7ICRpKyspIHsKCQkJJHJlYWRhYmxlIC49ICR0aGlzLT5nZXRTcGVjaWFsdGllcygpWyRpXTsKCQkJaWYgKCRpID09IGNvdW50KCR0aGlzLT5nZXRTcGVjaWFsdGllcygpKSAtIDIpIHsKCQkJCSRyZWFkYWJsZSAuPSAoY291bnQoJHRoaXMtPmdldFNwZWNpYWx0aWVzKCkpID4gMj8iLCI6JycpIC4gIiBhbmQgIjsKCQkJfSBlbHNlIGlmICgkaSA9PSBjb3VudCgkdGhpcy0+Z2V0U3BlY2lhbHRpZXMoKSkgLSAxKSB7CgkJCQkkcmVhZGFibGUgLj0gIi4iOwoJCQl9IGVsc2UgewoJCQkJJHJlYWRhYmxlIC49ICIsICI7CgkJCX0KCQl9CgkJcmV0dXJuICRyZWFkYWJsZTsKCX0KfQoKLy8gSW5zdGFudGlhdGUgQ29sZQokY29sZSA9IG5ldyBcTWFyc2hhbGxcQ29sZSgpOwoKLy8gRWNobyBDb2xlJ3MgUHJvZmVzc2lvbiBhbmQgU3BlY2lhbHRpZXMKZWNobyAkY29sZS0+Z2V0UmVhZGFibGVEZXRhaWxzKCk7Cj8+
Cole Marshall is an Interactive Developer & Designer who specializes in HTML, CSS, JavaScript, Sass, jQuery, cross-browser compatibility, mobile/responsive design, search engine optimization, PHP, MySQL, REST, XML, JSON, Git, automation, Photoshop, Illustrator, After Effects, Graphic Design, Typography, User Interface (UI) Design, User Experience (UX) Design, and Motion Graphics.